Reputation: 71
Error updating Group. Must declare the scalar variable "@SubnameWHERE"... why this error is showing .....
protected void cmdUpdate_Click(object sender, EventArgs e)
{
string updateSQL;
updateSQL = "UPDATE tblnewgroup SET ";
updateSQL += "Groupname=@Groupname, ";
updateSQL += "Slno=@Slno, Subname=@Subname";
updateSQL += "WHERE Groupno=@Groupno_original";
SqlConnection con = new SqlConnection(connectionString);
SqlCommand cmd = new SqlCommand(updateSQL, con);
cmd.Parameters.AddWithValue("@Groupname", txtgname.Text);
cmd.Parameters.AddWithValue("@Slno", txtsl.Text);
cmd.Parameters.AddWithValue("@Subname", txtsn.Text);
cmd.Parameters.AddWithValue("@Groupno_original", lstAuthor.SelectedItem.Value);
int updated = 0;
try
{
con.Open();
updated = cmd.ExecuteNonQuery();
lblResults.Text = updated.ToString() + " record updated.";
}
catch (Exception err)
{
lblResults.Text = "Error updating Group. ";
lblResults.Text += err.Message;
}
finally
{
con.Close();
}
if (updated > 0)
{
FillAuthorList();
}
}
Upvotes: 1
Views: 128
Reputation: 369
Simply change
updateSQL += "WHERE Groupno=@Groupno_original";
to
updateSQL += " WHERE Groupno=@Groupno_original";
Tip: While constructing such sql commands always put a space at the beginning of each string part.
Upvotes: 1
Reputation: 98740
You need a space after your Subname=@Subname
Change your
updateSQL += "Slno=@Slno, Subname=@Subname";
to
updateSQL += "Slno=@Slno, Subname=@Subname ";
As a better visualization, you can use it like;
string updateSQL = @"UPDATE tblnewgroup
SET Groupname=@Groupname, Slno=@Slno, Subname=@Subname
WHERE Groupno=@Groupno_original";
Also you should use using
block for dispose your SqlConnection
like;
using(SqlConnection con = new SqlConnection(connectionString))
{
con.Open();
updated = cmd.ExecuteNonQuery();
...
}
Upvotes: 2
Reputation: 119
As Soner has stated - your sql is invalid -
updateSQL += "Slno=@Slno, Subname=@Subname";
updateSQL += "WHERE Groupno=@Groupno_original";
These two lines will end up as ...@SubnameWHERE Groupno=
....
Thats your problem!
Upvotes: 2
Reputation: 26199
Problem : You have combined both parameter @Subname
and WHERE
clause.
Solution : You need to provide space
between parameter @Subname
and WHERE
clause
Replace This
updateSQL += "Slno=@Slno, Subname=@Subname";
With This:
updateSQL += "Slno=@Slno, Subname=@Subname ";
Upvotes: 1