-2
string mainconn = ConfigurationManager.ConnectionStrings["Myconnection"].ConnectionString;
SqlConnection sqlconn = new SqlConnection(mainconn);
string sqlquery = "insert into [signup] values (@charactername,@characterid,@email,@phonenumber,)";
sqlconn.Open();
SqlCommand cmd = new SqlCommand(sqlquery, sqlconn);
cmd.Parameters.AddWithValue("@charactername", txtcharactername.Text);
cmd.Parameters.AddWithValue("@characterid", txtcharacteid.Text);
cmd.Parameters.AddWithValue("@email", txtemail.Text);
cmd.Parameters.AddWithValue("@phonenumber", txtphonenumber.Text);
cmd.ExecuteNonQuery(); // <-- Error in this line
labmsg.Text = "User " + txtcharactername.Text + " is successfully registered";
sqlconn.Close();

When the program try to execute the cmd.ExecuteNonQuery(); I get the following error:

System.Data.SqlClient.SqlException: 'Incorrect syntax near ')'.'sql

Salah Akbari
  • 39,330
  • 10
  • 79
  • 109

1 Answers1

2

You have one stray , after your @phonenumber parameter, you need to remove it as it doesn't make any sense there.

string sqlquery = "insert into [signup] values (@charactername,@characterid,@email,@phonenumber,)";
                                                                                           ^^

Although specify the type directly and use the Value property is more better than AddWithValue:

cmd.Parameters.Add("@phonenumber", SqlDbType.VarChar).Value = txtphonenumber.Text;

Can we stop using AddWithValue() already?

Salah Akbari
  • 39,330
  • 10
  • 79
  • 109