مشکل با نوع varbinery در data grid view
سلام
برای خواندن فایل که بصورت باینری ذخیره کردم با این خطلا مواجعه میشم میخواستم بدونم مشکل از کجاست؟؟؟؟؟
SaveFileDialog sfd = new SaveFileDialog();
if (sfd.ShowDialog()==System.Windows.Forms.DialogResu lt.OK)
{
byte[] filebytee = Convert.ToByte(dataGridView1.CurrentRow.Cells[1].Value);
File.WriteAllBytes(sfd.FileName, filebytee);
MessageBox.Show("okkkk");
}
نقل قول: مشکل با نوع varbinery در data grid view
فایل ذخیره میشه؟ پسوندش صحیحه؟
نقل قول: مشکل با نوع varbinery در data grid view
مشکل رو این خطه
byte[] filebytee = Convert.ToByte(dataGridView1.CurrentRow.Cells[1].Value);
مینویسه نمیتونه byte رو به byte[] تبدیل کنه!!!!
نقل قول: مشکل با نوع varbinery در data grid view
بهتر است از binary reader و binary writer و filestream استفاده کنید...
private void binarywriting()
{
byte[] n = { 105, 102, 106 };
SaveFileDialog sfd = new SaveFileDialog();
if (sfd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
System.IO.FileStream s = new FileStream(sfd.FileName, FileMode.Create, FileAccess.Write, FileShare.Write);
BinaryWriter b = new BinaryWriter(s);
b.BaseStream.Write(n, 0, n.Count());
b.Close();
}
}
private byte[] binaryreading()
{
OpenFileDialog ofd = new OpenFileDialog();
if (ofd.ShowDialog() == DialogResult.OK)
{
System.IO.FileStream s = new FileStream(ofd.FileName, FileMode.Open, FileAccess.Read, FileShare.Read);
BinaryReader rd = new BinaryReader(s);
return rd.ReadBytes((int)s.Length);
}
else
return null;
}
و در باتن مربوط به خواندن باینری کد زیر را بنویسید:
if (binaryreading () != null)
{
foreach (byte item in binaryreading())
{
MessageBox.Show(item.ToString());
}
}
نقل قول: مشکل با نوع varbinery در data grid view
در کجا فایلو بدم به دیتا بیس و در کجا و چطوری ازش بخونم/؟؟؟؟؟؟
نقل قول: مشکل با نوع varbinery در data grid view
بستگی به کاری که شما می خواهید انجام دهید دارد، می توانید فایل هایی را که کاربر Save می کند را در DB ذخیره کنید و سپس آن ها را در یک گرید در اختیار کاربر قرار دهید تا برای باز کردن از گرید انتخاب کند... می توانید به کاربر اجازه دهید یک فایل را انتخاب کند و چندین خروجی دریافت کند(مانند برنامه ی FileCutter که یک فایل را به چند قسمت تقسیم می کند)و...
فکر می کنم سورس برنامه ی زیر به شما کمک کند...
FileCutter:
http://csharpedu.persiangig.com/file...r.rar/download
نقل قول: مشکل با نوع varbinery در data grid view
برای خوندن از گرید ویوو به مشکل بر میخورم خطای تبدل میده
byte[] n =(byte[]) DGv.CurrentRow.Cells[1].Value.ToString();
نقل قول: مشکل با نوع varbinery در data grid view
خوب شما دارید یک object را به آرایه ای از بایت ها تبدیل می کنید...
بهتر است که مقادیر را با یک کاراکتر مشخص از هم جدا کنید و سپس با تابع split مقادیر را وارد آرایه کنید...
نقل قول: مشکل با نوع varbinery در data grid view
نقل قول:
نوشته شده توسط
farhad.k.t
خوب شما دارید یک object را به آرایه ای از بایت ها تبدیل می کنید...
بهتر است که مقادیر را با یک کاراکتر مشخص از هم جدا کنید و سپس با تابع split مقادیر را وارد آرایه کنید...
میشه کدشو بنویسین من متوجه نمیشم...خیلی ممنونم
نقل قول: مشکل با نوع varbinery در data grid view
سلام
اگر تعداد byte های مشخصی را write می کنید می توانید از کد زیر در هنگام فراخوانی تابع binaryreading استفاده کنید:
byte[] a = binaryreading();
dataGridView1[0, 0].Value = a[0] + "," + a[1] + "," + a[2];
در غیر این صورت از کد زیر استفاده کنید:
string a = "";
foreach (byte item in binaryreading())
{
a += item + ",";
}
dataGridView1[0, 0].Value = a.Substring(0, a.Length - 1);
و برای استفاده از مقادیر گرید همانطور که گفته بودم از تابع split استفاده کنید:
foreach (string item in dataGridView1[0,0].Value.ToString().Split(','))
{
MessageBox.Show(item);
}
برای ذخیره در DB هم مانند دستورات بالا را با دستور Insert استفاده نمایید.
موفق باشید...
1 ضمیمه
نقل قول: مشکل با نوع varbinery در data grid view
مشکلم اینجاست که دیتا ها بصورت بایت ذخیره نمیشن ..مثلا دیتای دومی 105, 102, 106 هست که ببینید چی ذخیره شده!!!
ضمیمه 110742
نقل قول: مشکل با نوع varbinery در data grid view
دوست عزیز فکر کنم این تصویر مربوط به آدرس سکتورهاست.
باتوجه به این که اطلاعات موجود در گرید با تابع split فراخوانی می شوند ، نوع داده آن رشته ای می باشد و بهتر است به شکلnvarchar نیز در DB ثبت شوند ، شما می توانید پس از خواندن دیتا از گرید ، آن ها را Convert کنید و به صورت بایت استفاده کنید.(به دلیل استفاده از split باید نوع داده ها رشته ای باشند)
نقل قول: مشکل با نوع varbinery در data grid view
دوست عزیز با این روش یک فایل 300 کیلویی حداقل 1 دقیقه زمان میخواد و فکر نمکن روش بهینه ای باشه
اگه ممکنه بگید چطوری نوع varbinery ذخیره شده در DB را به ارایه ای از بایت تبدیل کنم؟؟