-1

コードを実行すると、「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
        {

        }
    } 
}
4

2 に答える 2

0

@@identityを選択する前にセミコロンを追加します。その後、実行してみてください。これは、ステートメントの挿入には1つのセミコロン、選択にはセミコロンを意味します。

于 2012-05-23T05:50:43.483 に答える
0

「SELECT@@IDENTITY」の前に、セミコロンが必要です。技術的には、2つのSQLステートメントを作成しています。1つは挿入用、もう1つはSELECT@@IDENTITY用です。そのため、これら2つのクエリの間にセミコロンが必要です。

于 2012-05-23T05:51:03.023 に答える