Click here to Skip to main content
15,894,017 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
try
{
    if (cn.State.ToString() != "Open")
        cn.Open();
    cmd = new SqlCommand("insert into Cafe_prodect (name_prodect,price,NO_Table,image_prodect,type_prodect) values(@name_prodect,@price,@NO_Table,@image_prodect,@type_prodect)", cn);
    MemoryStream ms = new MemoryStream();

    pictureBox2.Image.Save(ms, pictureBox2.Image.RawFormat);
    byte[] byteImage = ms.ToArray();

    SqlParameter[] param = new SqlParameter[5];

    param[0] = new SqlParameter("@name_prodect", SqlDbType.NVarChar, 200);
    param[0].Value = txtPname.Text;

    param[1] = new SqlParameter("@price", SqlDbType.NVarChar, 200);
    param[1].Value = txtPprice.Text;

    param[2] = new SqlParameter("@NO_Table", SqlDbType.NVarChar, 200);
    param[2].Value = txtNoTbl.Text;

    param[3] = new SqlParameter("@image_prodect", SqlDbType.Image);
    param[3].Value = byteImage;

    param[4] = new SqlParameter("@type_prodect", SqlDbType.NVarChar, 200);
    param[4].Value = txtTyp.Text;

    cmd.Parameters.AddRange(param);
    cmd.ExecuteNonQuery();
    cn.Close();

    MessageBox.Show("تم بنجاح");
}
catch (Exception ex)
{

    MessageBox.Show("ooooo  " + ex.Message);
}


What I have tried:

Quote:
value cannot be null. parameter name encoder
Posted
Updated 17-Aug-18 19:47pm

1 solution

Look at your error message:
value cannot be null. parameter name encoder

Now look at your code:
C#
cmd = new SqlCommand("insert into Cafe_prodect (name_prodect,price,NO_Table,image_prodect,type_prodect)...
YOu do not set a value for the encoder column - and the error is saying that the table definition does not allow NULL values for that column.

Either provide a value, or change your table definition.

BTW: You do realise that you go all round the houses to get the job done?
Why not just do this:
C#
string strInsert = "INSERT INTO Cafe_prodect " +
                   "(name_prodect, price, NO_Table, image_prodect, type_prodect) VALUES " +
                   "(@name_prodect, @price, @NO_Table, @image_prodect, @type_prodect)";
using (cmd = new SqlCommand(strInsert, cn))
    {
    MemoryStream ms = new MemoryStream();
    pictureBox2.Image.Save(ms, pictureBox2.Image.RawFormat);
    byte[] byteImage = ms.ToArray();

    cmd.Parameters.AddWithValue("@name_prodect", txtPname.Text);
    cmd.Parameters.AddWithValue("@price", txtPprice.Text);
    cmd.Parameters.AddWithValue("@NO_Table", txtNoTbl.Text);
    cmd.Parameters.AddWithValue("@image_prodect", byteImage);
    cmd.Parameters.AddWithValue("@type_prodect", txtTyp.Text);
    cmd.ExecuteNonQuery();
    }
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900