سلام.
پست ویرایش شد و کد بهینه تر قرار داده شد :
یک sp بصورت زیر قرار بدید :
create proc AddMorabi
@fname nvarchar(50),
@lname nvarchar(50),
@sex nvarchar(50),
@reshte nvarchar(50),
@madrak nvarchar(50),
@mobile int,
@pic varbinary(max) = null
as
insert into TblMorabi(Fname,Lname,Sex,Reshte,Madrak,Mobile,Pic )
Values(@fname,@lname,@sex,@reshte,@madrak,@mobile, @pic)
go
و کدتون رو بصورت زیر قرار بدید :
private void BtnSave_Click(object sender, EventArgs e)
{
if (string.IsNullOrWhiteSpace(TxtName.Text))
{
errorProvider1.SetError(TxtName, "وارد کردن نام مربی الزامی می باشد");
}
else if (string.IsNullOrWhiteSpace(TxtFamily.Text))
{
errorProvider1.SetError(TxtFamily, "وارد کردن نام خانوادگی الزامی میباشد");
}
else
{
SqlCommand cmd = new SqlCommand("AddMorabi", con);
MemoryStream ms = new MemoryStream();
byte[] pic_array = new byte[ms.Length];
if (pictureBox1.Image != null)
{
pictureBox1.Image.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
ms.Position = 0;
ms.Read(pic_array, 0, pic_array.Length);
cmd.Parameters.AddWithValue("@pic", pic_array);
}
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@fname", TxtName.Text);
cmd.Parameters.AddWithValue("@lname", TxtFamily.Text);
cmd.Parameters.AddWithValue("@sex", CmbSex.SelectedItem);
cmd.Parameters.AddWithValue("@reshte", TxtReshte.Text);
cmd.Parameters.AddWithValue("@madrak", TxtMadrak.Text);
cmd.Parameters.AddWithValue("@mobile", TxtMobile.Text);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
MessageBox.Show("عملیات مورد نظر با موفقیت انجام شد ");
}
}//end button save
در این حالت اگر پیکچرباکس شامل عکس باشه پارامتر ارسال میشه و در غیراینصورت درون sp مقدار پیش فرض پارامتر که null هست درج میشه.