c# - Return on my function doesn't work if using sql -
i populating text box returned value of function, doesn't work if run sql code inside function. can remove sql related code , works. i'm stumped.
and "doesn't work" mean text box never gets populated anything. remains blank.
thanks
public string createresident() { string result = "hmm"; sqlconnection sqlconnection = new sqlconnection("server=dellxps\\sqlexpress; initial catalog=warren_seindatasystems; integrated security=true;"); sqlcommand cmd = new sqlcommand(); cmd.commandtext = "insert [dbo].[newusers]([residentaccountnumber],[residentname],[residentaddress],[numberofvisitors],[temppass],[role])values(@residentaccountnumber,@residentname,@residentaddress,@numberofvisitors,(select cast((abs(checksum(newid()))%10) varchar(1)) + char(ascii('a')+(abs(checksum(newid()))%25)) + char(ascii('a')+(abs(checksum(newid()))%25)) + left(newid(),5)),'resident')"; cmd.commandtype = commandtype.text; cmd.connection = sqlconnection; sqlparameter residentaccountnumber = new sqlparameter(); residentaccountnumber.parametername = "@residentaccountnumber"; residentaccountnumber.value = txtboxresidenetaccountnumber.text.trim(); cmd.parameters.add(residentaccountnumber); sqlparameter residentname = new sqlparameter(); residentname.parametername = "@residentname"; residentname.value = txtboxresidentname.text.trim(); cmd.parameters.add(residentname); sqlparameter residentaddress = new sqlparameter(); residentaddress.parametername = "@residentaddress"; residentaddress.value = txtboxresidentaddress.text.trim(); cmd.parameters.add(residentaddress); sqlparameter numberofvisitors = new sqlparameter(); numberofvisitors.parametername = "@numberofvisitors"; numberofvisitors.value = txtboxnumberofvisitors.text.trim(); cmd.parameters.add(numberofvisitors); try { sqlconnection.open(); result = (string)cmd.executescalar(); sqlconnection.close(); } catch (exception ex) { result = ex.message; } return result; } protected void btncreateresident_click(object sender, eventargs e) { txtboxtemppassword.text = createresident(); }
your sql wrong , have lot of problems want show way make code more readable. format this:
cmd.commandtext = @"insert [dbo].[newusers] ([residentaccountnumber],[residentname],[residentaddress], numberofvisitors],[temppass], role]) values( @residentaccountnumber, @residentname, @residentaddress, @numberofvisitors, (select cast((abs(checksum(newid()))%10) varchar(1)) + char(ascii('a')+(abs(checksum(newid()))%25)) + char(ascii('a')+(abs(checksum(newid()))%25)) + left(newid(),5)), 'resident')"; cmd.commandtype = commandtype.text; cmd.connection = sqlconnection; we know select in values constructor not legal 1 problem.
also having select without seems strange -- did copy code correctly?
you using executescalar -- know does? shouldn't include query includes insert query.
i'm guessing want stored procedure.
Comments
Post a Comment