【发布时间】:2016-09-26 12:55:51
【问题描述】:
我的查询出现 sql 异常:
[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
{
}
}
任何帮助将不胜感激。
【问题讨论】:
-
您是使用 Oracle 还是 Sql Server 作为数据库?
-
我正在使用 Sql Server
-
使用
@而不是?你是怎么想出?的? -
您使用的是 SqlProvider ,您不需要使用 @ 而不是 '? ' ?
-
顺便说一句 - 你的
else(至少在上面的代码中)是多余的,可以删除