piroozman
دوشنبه 30 شهریور 1388, 23:41 عصر
در برنامه ای قصد بر این داریم فایلی را از داخل کامپیوتر انتخاب کرده و آنرا در یک دیتابیس ذخیره کنیم. برای این کار از کدهای زیر استفاده کرده ام:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private string strFileName;
private byte[] fileType;
private void t1BindingNavigatorSaveItem_Click(object sender, EventArgs e)
{
this.Validate();
this.t1BindingSource.EndEdit();
this.tableAdapterManager.UpdateAll(this.testDataSe t);
}
private void Form1_Load(object sender, EventArgs e)
{
// TODO: This line of code loads data into the 'testDataSet.t1' table. You can move, or remove it, as needed.
this.t1TableAdapter.Fill(this.testDataSet.t1);
}
private void selectButton_Click(object sender, EventArgs e)
{
try
{
if (openFileDialog1.ShowDialog(this) == DialogResult.OK)
{
strFileName = openFileDialog1.FileName;
fileType = System.IO.File.ReadAllBytes(strFileName);
this.t1DataGridView[1, this.t1DataGridView.CurrentCell.RowIndex].Value = fileType;
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Error");
}
}
}
برای ذخیره کردن و حذف رکورد ها در دیتابیس از TableAdapter استفاده کرده ام. اگر پروژه ای که به این تاپیک ضمیمه شده است را باز کنید، خواهید دید که ستونی از دیتاگریدویو را که مقدار فایل ها در آن قرار می گیرد به صورت کلید است. حال سئوالم اینجاست:
1. چگونه می توانم نام فایل را از انتهای مسیری که فایل انتخاب می شود جدا کنم و به صورت یک متغیر آنرا بدست بیاورم. چون قصد دارم نام فایل را در دیتابیس ذخیره کنم.
2. پس از ذخیره نام فایل چگونه می توانم نام آنرا بر روی کلیدهای هر رکوردی که نشانگر فایل است نمایش دهم.
3. همانطور که در کدها مشاهده می کنید این امکان وجود دارد که هر فایلی را در دیتابیس ذخیره کنید. از فایلهای آفیس، تصویری و . . . اما چگونه فایل را اجرا کنم. قصد دارم فایل اگر مثلا یک فایل اتوکد است برنامه آنرا با اتوکد باز کند و اگر وورد است یا اکسل آنرا با نرم افزار مربوطه باز کند.
4. قصد دارم فایل را در یک مسیر موقت باز کنم. مثلا در temp ویندوز. هدفم این است که کاربر بتواند روی فایل تغییرات را ایجاد کند و سپس آنرا در دیتابیس ذخیره کند. بنده فکر می کنم باید یک نام تصادفی به این فایل که قرار است در temp ویرایش شود، بدهم. چگونه این کار را می توانم انجام دهم طوری که نام مشابه ای در همان temp با نامی که من به فایل جدید می دهم وجود نداشته باشد.
5. چگونه می توان فایلی را (نه کل رکورد) را از رکورد خاصی حذف کنم.
اگر دوستان کمک کنند این تاپیک را به انتها برسونیم مطالب را جمع و جور کرده و در همین تاپیک به صورت مشخص و معینی اضافه میکنم تا دوستان دیگر نیز بتوانند از آن استفاده کنند. ضمنا اگر کسی ایده جدیدی دارد لطف می کنه در همین تاپیک اعلام کنه. از کلیه دوستانی که به بنده جواب می دهند قبلا تشکر می کنم
نکته آخر این که T-SQL ایجاد دیتابیس و جدول مربوطه و نیز پروژه ضمیمه می باشد.
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private string strFileName;
private byte[] fileType;
private void t1BindingNavigatorSaveItem_Click(object sender, EventArgs e)
{
this.Validate();
this.t1BindingSource.EndEdit();
this.tableAdapterManager.UpdateAll(this.testDataSe t);
}
private void Form1_Load(object sender, EventArgs e)
{
// TODO: This line of code loads data into the 'testDataSet.t1' table. You can move, or remove it, as needed.
this.t1TableAdapter.Fill(this.testDataSet.t1);
}
private void selectButton_Click(object sender, EventArgs e)
{
try
{
if (openFileDialog1.ShowDialog(this) == DialogResult.OK)
{
strFileName = openFileDialog1.FileName;
fileType = System.IO.File.ReadAllBytes(strFileName);
this.t1DataGridView[1, this.t1DataGridView.CurrentCell.RowIndex].Value = fileType;
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Error");
}
}
}
برای ذخیره کردن و حذف رکورد ها در دیتابیس از TableAdapter استفاده کرده ام. اگر پروژه ای که به این تاپیک ضمیمه شده است را باز کنید، خواهید دید که ستونی از دیتاگریدویو را که مقدار فایل ها در آن قرار می گیرد به صورت کلید است. حال سئوالم اینجاست:
1. چگونه می توانم نام فایل را از انتهای مسیری که فایل انتخاب می شود جدا کنم و به صورت یک متغیر آنرا بدست بیاورم. چون قصد دارم نام فایل را در دیتابیس ذخیره کنم.
2. پس از ذخیره نام فایل چگونه می توانم نام آنرا بر روی کلیدهای هر رکوردی که نشانگر فایل است نمایش دهم.
3. همانطور که در کدها مشاهده می کنید این امکان وجود دارد که هر فایلی را در دیتابیس ذخیره کنید. از فایلهای آفیس، تصویری و . . . اما چگونه فایل را اجرا کنم. قصد دارم فایل اگر مثلا یک فایل اتوکد است برنامه آنرا با اتوکد باز کند و اگر وورد است یا اکسل آنرا با نرم افزار مربوطه باز کند.
4. قصد دارم فایل را در یک مسیر موقت باز کنم. مثلا در temp ویندوز. هدفم این است که کاربر بتواند روی فایل تغییرات را ایجاد کند و سپس آنرا در دیتابیس ذخیره کند. بنده فکر می کنم باید یک نام تصادفی به این فایل که قرار است در temp ویرایش شود، بدهم. چگونه این کار را می توانم انجام دهم طوری که نام مشابه ای در همان temp با نامی که من به فایل جدید می دهم وجود نداشته باشد.
5. چگونه می توان فایلی را (نه کل رکورد) را از رکورد خاصی حذف کنم.
اگر دوستان کمک کنند این تاپیک را به انتها برسونیم مطالب را جمع و جور کرده و در همین تاپیک به صورت مشخص و معینی اضافه میکنم تا دوستان دیگر نیز بتوانند از آن استفاده کنند. ضمنا اگر کسی ایده جدیدی دارد لطف می کنه در همین تاپیک اعلام کنه. از کلیه دوستانی که به بنده جواب می دهند قبلا تشکر می کنم
نکته آخر این که T-SQL ایجاد دیتابیس و جدول مربوطه و نیز پروژه ضمیمه می باشد.