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

时间:2015-11-18 16:55:51

标签: 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();

2 个答案:

答案 0 :(得分: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);

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

Can we stop using AddWithValue() already?并停止使用.AddWithValue() - 这会导致意外和令人惊讶的结果......

答案 1 :(得分:0)

虽然根据你的问题没有相关性,@“marc_s”已经解释过参数名称不应该有中间空格 - 这是正确的,我投票支持但是我想在你的代码中强调一些其他必要的修改。关闭SqlConnection并仅在重定向页面后,否则将永远不会执行con.Close();

con.Close();
Response.Redirect("manger.aspx");