错误是:"'''附近的语法不正确".在asp.net中

aks*_*ari 0 c# sql-server

SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ebookConnectionString"].ConnectionString);
con.Open();

string insert = "insert into ebook(Name,Email,Passeword,Mobile No.)values (@name,@email,@password,@dob,@mobile no.))";

SqlCommand cmd = new SqlCommand(insert, con);
cmd.Parameters.AddWithValue("@name", TextBox1.Text);
cmd.Parameters.AddWithValue("@email", TextBox2.Text);
cmd.Parameters.AddWithValue("@password", TextBox3.Text);
cmd.Parameters.AddWithValue("@dob", TextBox6.Text);
cmd.Parameters.AddWithValue("@mobile no.", TextBox5.Text);

int rd = cmd.ExecuteNonQuery();
Response.Redirect("manger.aspx");

con.Close();
Run Code Online (Sandbox Code Playgroud)

mar*_*c_s 5

你不能有像"移动号码"这样的参数名称.- 没有空格,没有像点等特殊字符 - 请@MobileNo改用.

如果您的SQL Server列具有特殊字符和空格 - 您必须将它们括在方括号中[Mobile No.]

所以使用这个:

string insert = "insert into ebook(Name, Email, Passeword, [Mobile No.]) " +
                "values (@name, @email, @password, @dob, @mobileno)";
.....
cmd.Parameters.AddWithValue("@mobileno", TextBox5.Text);
Run Code Online (Sandbox Code Playgroud)

此外,检查一下,避免使用.AddWithValue():

我们可以停止使用AddWithValue()吗?并停止使用.AddWithValue()- 它可能导致意想不到的惊人结果......