hadi88
دوشنبه 30 اردیبهشت 1398, 11:29 صبح
با سلام
من یه جدول دارم که شامل فیلد های (radif,p_name,tell,mobile,adress,pic) هست که با استفاده از linq و StoredProcedure عملیات های مختلف روی پایگاه داده انجام میدم
برای ذخیره در جدول از کد زیر استفاده می کنم
MemoryStream ms = new MemoryStream();
pic.Image.Save(ms, pic.Image.RawFormat);
byte[] arrPic = ms.GetBuffer();
linq_data_classDataContext db = new linq_data_classDataContext();
db.psave_tbl_p(txt_n.Text, txt_t.Text, txt_m.Text, txt_a.Text, ms.GetBuffer());
dgv_p.DataSource = db.pselect_tbl_p();
کد StoredProcedure
ALTER PROCEDURE dbo.psave_tbl_p @p_name nvarchar(50), @tell nvarchar(11), @mobile nvarchar(11), @adress nvarchar(MAX), @pic varbinary
AS
Insert tbl_p values(@p_name,@tell,@mobile,@adress,@pic)
RETURN
وقتی بر روی سطری از datagrid کلیک میشه از کد زیر برای پر کردن فرم استفاده می کنم که با مشکل مواجه می شم
private void dgv_p_CellClick(object sender, DataGridViewCellEventArgs e)
{
if (dgv_p.RowCount > 0)
{
txt_n.Text = dgv_p.SelectedCells[1].Value.ToString();
txt_t.Text = dgv_p.SelectedCells[2].Value.ToString();
txt_m.Text = dgv_p.SelectedCells[3].Value.ToString();
txt_a.Text = dgv_p.SelectedCells[4].Value.ToString();
MemoryStream ms = new MemoryStream((byte[])(dgv_p.SelectedCells[5].Value));
pic.Image = Image.FromStream(ms);
}
}
وقتی روی سطری از datagrid کاربر کلیک میکنه خطا زیر رو نشون میده که مربوط به فیلد عکس است
Unable to cast object of type 'System.Data.Linq.Binary' to type 'System.Byte[]'.
از دوستان هر کسی در این زمینه اطلاعاتی داره ممنون میشم کمکم کنه
من یه جدول دارم که شامل فیلد های (radif,p_name,tell,mobile,adress,pic) هست که با استفاده از linq و StoredProcedure عملیات های مختلف روی پایگاه داده انجام میدم
برای ذخیره در جدول از کد زیر استفاده می کنم
MemoryStream ms = new MemoryStream();
pic.Image.Save(ms, pic.Image.RawFormat);
byte[] arrPic = ms.GetBuffer();
linq_data_classDataContext db = new linq_data_classDataContext();
db.psave_tbl_p(txt_n.Text, txt_t.Text, txt_m.Text, txt_a.Text, ms.GetBuffer());
dgv_p.DataSource = db.pselect_tbl_p();
کد StoredProcedure
ALTER PROCEDURE dbo.psave_tbl_p @p_name nvarchar(50), @tell nvarchar(11), @mobile nvarchar(11), @adress nvarchar(MAX), @pic varbinary
AS
Insert tbl_p values(@p_name,@tell,@mobile,@adress,@pic)
RETURN
وقتی بر روی سطری از datagrid کلیک میشه از کد زیر برای پر کردن فرم استفاده می کنم که با مشکل مواجه می شم
private void dgv_p_CellClick(object sender, DataGridViewCellEventArgs e)
{
if (dgv_p.RowCount > 0)
{
txt_n.Text = dgv_p.SelectedCells[1].Value.ToString();
txt_t.Text = dgv_p.SelectedCells[2].Value.ToString();
txt_m.Text = dgv_p.SelectedCells[3].Value.ToString();
txt_a.Text = dgv_p.SelectedCells[4].Value.ToString();
MemoryStream ms = new MemoryStream((byte[])(dgv_p.SelectedCells[5].Value));
pic.Image = Image.FromStream(ms);
}
}
وقتی روی سطری از datagrid کاربر کلیک میکنه خطا زیر رو نشون میده که مربوط به فیلد عکس است
Unable to cast object of type 'System.Data.Linq.Binary' to type 'System.Byte[]'.
از دوستان هر کسی در این زمینه اطلاعاتی داره ممنون میشم کمکم کنه