SqlException''附近语法不正确
我在我的查询获取SQL异常:SqlException''附近语法不正确
[SQLEXCEPTION(0x80131904):附近有语法错误 '?'。关键字“用户”。]近不正确 语法
我在做什么错?这个例外是什么意思?
protected void Submit_Click(object sender, EventArgs e)
{
string myConnection = @"Data Source=REDDEVIL;Initial..."
SqlConnection conn = new SqlConnection(myConnection);
HttpPostedFile postedFile = FileUpload1.PostedFile;
string fileName = Path.GetFileName(postedFile.FileName);
string fileExtension = Path.GetExtension(fileName);
if (fileExtension.ToLower() == ".jpg" || fileExtension.ToLower() == ".bmp" ||
fileExtension.ToLower() == ".gif" || fileExtension.ToLower() == ".png")
{
Stream stream = postedFile.InputStream;
BinaryReader binaryReader = new BinaryReader(stream);
byte[] bytes = binaryReader.ReadBytes((int)stream.Length);
string query2 = "INSERT INTO Manager (ID,Name,Address,Phone,Cell,Email,DOB,Commission,Comments,Photo,User ID,IsActive) VALUES (?ID,?Name,?Address,?Phone,?Cell,?Email,?DOB,?Commission,?Comments,?Photo,?User_ID,?IsActive)";
SqlCommand cmd2 = new SqlCommand(query2, conn);
cmd2.Parameters.AddWithValue("?ID", mgrID.Text);
cmd2.Parameters.AddWithValue("?Name", Name.Text);
cmd2.Parameters.AddWithValue("?Address", address.Text);
cmd2.Parameters.AddWithValue("?Phone", phoneNo.Text);
cmd2.Parameters.AddWithValue("?Cell", CellNo.Text);
cmd2.Parameters.AddWithValue("?Email", email.Text);
cmd2.Parameters.AddWithValue("?DOB", dob.Text);
cmd2.Parameters.AddWithValue("?Commission", commission.Text);
cmd2.Parameters.AddWithValue("?Comments", comments.Text);
cmd2.Parameters.AddWithValue("?Photo", bytes);
cmd2.Parameters.AddWithValue("?User_ID", System.DBNull.Value);
cmd2.Parameters.AddWithValue("?IsActive", System.DBNull.Value);
conn.Open();
cmd2.ExecuteNonQuery();
conn.Close();
Response.Redirect("~/Views/Portal/Dashboard.aspx");
}
else
{
}
}
任何帮助将不胜感激。
要指定它是一个参数,你应该在你的SQL查询中使用@
而不是?
。然后在你的参数的创建,你不需要?
要么
string query2 = "INSERT INTO Manager (ID,Name,Address,Phone,Cell,Email,DOB,Commission,Comments,Photo,User_ID,IsActive) VALUES (@ID,@Name,@Address,@Phone,@Cell,@Email,@DOB,@Commission,@Comments,@Photo,@User_ID,@IsActive)";
SqlCommand cmd2 = new SqlCommand(query2, conn);
cmd2.Parameters.AddWithValue("ID", mgrID.Text);
而作为添一节注意到您在指定的字段必须...USER ID,....
- 我认为你缺少之间的_
二。 (如果它确实是叫user
然后看到蒂姆的建议与[]
但是另一个问题是 - 甚至在错误消息中提到 - 他使用关键字'User',他必须把它在括号内:'[User]'。 –
@TimSchmelter - 确实如此。更正的答案。顺便说一句,我认为这是一个错字,它缺少'_'而不是它是一个名为'USER'的字段 - 但可能是 –
定义列名都有自己的规则,你必须定义列名作为
,用户ID,
这是不正确的,它必须是一个单词,所以你必须把它放在括号内,如
,[用户ID],
您是否使用Oracle或Sql Server作为数据库? –
我正在使用Sql Server – EL323
使用'@'而不是'?'你是怎么想到'?'实际上? – uTeisT