我有问题,当我发现我的代码然后出现错误“在sql语句结束时丢失分号。”
我的代码是:
代码的
protected void btnSubmit_Click(object sender, EventArgs e)
{
try
{
FileUpload img = (FileUpload)imgUpload;
Byte[] imgByte = null;
if (img.HasFile && img.PostedFile != null)
{
//To create a PostedFile
HttpPostedFile File = imgUpload.PostedFile;
//Create byte Array with file len
imgByte = new Byte[File.ContentLength];
//force the control to load data in array
File.InputStream.Read(imgByte, 0, File.ContentLength);
}
string str = ("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:/Users/Geeta/Desktop/mssl2.accdb;Persist Security Info=False";);
OleDbConnection conn = new OleDbConnection(str);
conn.Open();
string sql = "INSERT INTO digital(Product_Name, Product_Code, Product_Price, Product_Image, Product_Description) VALUES(@pnm, @pcod, @ppr, @pimg, @pdes) SELECT @@IDENTITY;";
OleDbCommand cmd = new OleDbCommand(sql, conn);
cmd.Parameters.AddWithValue("@pnm", txtEName.Text.Trim());
cmd.Parameters.AddWithValue("@pcod", txt_productcode.Text.Trim());
cmd.Parameters.AddWithValue("@ppr", txt_productprice.Text.Trim());
cmd.Parameters.AddWithValue("@pdes", txt_productdescri.Text.Trim());
cmd.Parameters.AddWithValue("@pimg", imgByte);
int Id = Convert.ToInt32(cmd.ExecuteScalar());
lblResult.Text = String.Format("Employee ID is {0}", Id);
conn.Close();
}
catch
{
lblResult.Text = "There was an error";
}
finally
{
}
}
}
答案 0 :(得分:0)
在选择@@ identity之前添加分号。然后尝试执行。这意味着插入语句一个分号和半冒号选择。
答案 1 :(得分:0)
在“SELECT @@ IDENTITY”之前,您需要一个分号。 从技术上讲,您正在创建两个SQL语句。 一个用于插入,一个用于SELECT @@ IDENTITY。这就是为什么你需要在这两个查询之间使用分号。