PDA

View Full Version : مشکل در ذخیره متن و عکس با هم در یک جدول



saeedvbm
پنج شنبه 26 تیر 1393, 14:35 عصر
با سلام خدمت همه اساتید

با کد زیر اطلاعات متنی رو می تونم تو جدول ذخیره کنم و تو دیتا گرید ببینم .


SqlConnection sc = new SqlConnection("Data Source=.\\sqlexpress ;Initial Catalog=saeed;Integrated Security=True");
SqlCommand scom = new SqlCommand("insert into std values(" + Convert.ToInt16(textBox1.Text) + ",'" + textBox2.Text + "','" + textBox3.Text + "','" + textBox4.Text + "')", sc);
try
{
sc.Open();
swc.ExecuteNonQuery();
this.fillgrid();
}
catch (SqlException ex)
{
MessageBox.Show(ex.Message);
}
finally
{
sc.Close();
}


و با این کدهم که دوستان راهنمایی کردن میتونم عکس رو با تعریف پروسیجر در sql در جدولی غیر از جدول با لا ذخیره کنم



SqlConnection con = new SqlConnection("Data Source=.\\sqlexpress ;Initial Catalog=saeed;Integrated Security=True");

private void LoadImageBtn_Click(object sender, EventArgs e)
{

openFileDialog1.ShowDialog();
if (openFileDialog1.FileName != "")
{

Image newImage = Image.FromFile(openFileDialog1.FileName);

myPictureBox.Image = newImage;
FileStream FS = new FileStream(@openFileDialog1.FileName, FileMode.Open, FileAccess.Read);
byte[] img = new byte[FS.Length];
FS.Read(img, 0, Convert.ToInt32(FS.Length));


if (con.State == ConnectionState.Closed)
con.Open();
SqlCommand cmd = new SqlCommand("tv_Insert", con););

cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@img", SqlDbType.Image).Value = img;
cmd.ExecuteNonQuery();
con.Close();




و حالا مشکل اصلی من اینه که این دوتا کد رو نمی تونم ادغام کنم و تو یه جدول استفاده کنم ، در اصل می خوام وقتی عکس رو انتخاب کردم با یه دکمه ذخیره هم عکس و هم متن ذخیره بشن . ممنون میشم دوستان عزیز کمک کن . :گیج::گیج::گیج:

121200

abbas.oveissi
جمعه 27 تیر 1393, 00:19 صبح
کممممکککککک کسی نبود ؟
دوست عزیز خب cmd.CommandType رو عوض کن تا به جای StoredProcedure خودت کوئری رو مستقیما بصورت Text بنویسید.بعد کوئری رو اینجوری بنویس :
"insert into std values(@p1,@p2,@p3,@p4,@img)"
بعدش شبیه این کد پایینی این پارامتر هارو مقدار دهی کن:
cmd.CommandText = "insert into std values(@p1,@p2,@p3,@p4,@img)";
cmd.CommandType = CommandType.Text;
cmd.Parameters.Add("@img", SqlDbType.Image).Value = img;
cmd.Parameters.AddWithValue("p1", textBox1.Text);
cmd.Parameters.AddWithValue("p2", textBox1.Text);
cmd.Parameters.AddWithValue("p3", textBox1.Text);
cmd.Parameters.AddWithValue("p4", textBox1.Text);
cmd.ExecuteNonQuery();
con.Close();

saeedvbm
جمعه 27 تیر 1393, 14:48 عصر
نه دوست عزیز نشد . از این خط اورر میگیره
cmd.ExecuteNonQuery();

abbas.oveissi
جمعه 27 تیر 1393, 17:45 عصر
نه دوست عزیز نشد . از این خط اورر میگیره
cmd.ExecuteNonQuery();


من فقط نحوه نوشتن کوئری رو توضیح دادم و بقیه کد هاتون رو تست نکردم که بدونم درست هست یا نه.الان این خط چه خطایی میده ؟