i trying update sql table c# backend, never executes; mainservicebutton pre-existing value in linkname column. here have far:
conn.open(); string qry = "update clickstream set clickcount = (clickcount + 1) linkname = mainservicebutton"; sqlcommand cmd = new sqlcommand(qry, conn); try { cmd.executescalar(); } catch { messagebox.show("not executed"); } conn.close(); this how table created:
create table clickstream( click_id int identity(1,1), linkname nvarchar(50) not null, clickcount int, primary key(click_id)); the desired result increase clickcount 1 every time link(linkname) clicked on. suggestions?
messagebox.show("not executed"); not going except obscure details of error: need instead output details of caught exception understand happened.
addressing , other suggestions made in comments...
mainservicebuttonnakedly inline in sql text not possibly being want- a
sqlparameterbeing warranted accept valuewheresanely executenonquery()instead ofexecutescalar()being right call
..., see sort of mileage instead:
conn.open(); string qry = "update clickstream set clickcount = (clickcount + 1) linkname = @linkname"; sqlcommand cmd = new sqlcommand(qry, conn); // use sqlparameter correct error in posted code , safely. cmd.parameters.add(new sqlparameter("@linkname", "mainservicebutton")); try { cmd.executenonquery(); // not executescalar() } catch (sqlexception sex) { // output exception message , stack trace. messagebox.show(sex.tostring()); } conn.close();
Comments
Post a Comment