Make your own free website on Tripod.com

صفحه های مرتبط

 

  صفحه اصلی > برنامه های نمونه > ذخیره فایل در DB

   

> پروژه های کامل

   برنامه تابلو تبلیغاتی الکترونیکی

   برنامه نمایش ساعت عقربه ای

   ذخیره تصاویر در SQL SERVER

   برنامه کامل نمایش تقویم میلادی

 

> کدهای نمونه

   مرورگر اینترنتی

   تبدیل تاریخ شمسی به میلادی

   مشاهده سورس صفحه وب

   پخش فایل های MP3 و WMA در کنسول

   کسب مشخصات درایوها

   ذخیره فایل در DB

 
 

  ذخیره فایل در DB

در این مقاله به شما می آموزیم که چگونه یک فایل را در بانک اطلاعاتی SQL ذخیره کنید. مثلا گاهی اوقات نیاز است که عکس کارمندان یک شرکت در بانک اطلاعاتی ذخیره شود یا اینکه می خواهید یک صفحه وب را در بانک اطلاعاتی ذخیره کنید.


 1) ویژوال استودیو دات نت را باز کنید. (توجه داشته باشید که در این مقاله از ویژوال استودیو دات نت 2005 استفاده شده است)
 2) از منوی File گزینه New و سپس گزینه Project را انتخاب کنید.
 3) در پنجره ظاهر شده گزینه #Visual C و Windows Application را انتخاب کنید.
 4) نامی را برای پروژه در نظر بگیرید و دکمه Ok را انتخاب کنید.
 5) یک عنصر TextBox بر روی فرم قرار دهید و نام آنرا txtFile در نظر بگیرید.
 6) یک عنصر Button بر روی فرم قرار دهید، نام آنرا btnBrowse و عنوان آنرا Browse در نظر بگیرید.
 7) بر روی دکمه btnBrowse دو بار کلیک کنید و کد زیر را در رویداد Click آن وارد کنید:

 private void btnBrowse_Click(object sender, EventArgs e)
  {
   OpenFileDialog dlg = new OpenFileDialog();
   if (dlg.ShowDialog() == DialogResult.OK)
   txtFile.Text = dlg.FileName;
  }

توضیح در مورد کد:
در خط 1 یک عنصر به نام dlg از نوع کادر محاوره باز کردن فایل تعریف کردیم. در خط 2 کادر محاوره را با متد ShowDialog باز کردیم. در صورتی که کاربر فایلی را انتخاب کند و دکمه Open را فشار دهد، مقداری که کادر محاوره بر می گرداند DialogResult.Ok خواهد بود. در این صورت در خط 3 نام و مسیر فایل انتخابی را در عنصر txtFile قرار می دهیم.
 

 توضیح در مورد کد:
برای دسترسی به درایوها کلاسی به نام DriveInfo توسط دات نت فراهم شده است که می توانید توسط آن مشخصات درایوها را مشاهده نمایید. در خط 1 یک عنصر به نام drive تعریف کردیم. این عنصر آرایه ای است که هر خانه آن یک DriveInfo است. به زبانی ساده تر هر خانه از این آرایه می تواند مشخصات یک درایو را نگهداری کند. با استفاده از متد ()GetDrives از کلاس DriveInfo تمامی درایوهای موجود در هارد را بازیابی و در داخل آرایه drive قرار دادیم. در خط 2 به خانه های موجود در آرایه drive یا به عبارتی دیگر به تمامی درایوهای موجود در عنصر drive مراجعه کرده و در خط 3 نام این درایوها را در عنصر lstDrives یا همان ListBox  نمایش دادیم.

 8)یک عنصر Button دیگر بر روی فرم قرار دهید، نام آنرا btnSave و عنوان آنرا Save To Database در نظر بگیرید.

 9) فضای نام های زیر را به ابتدای برنامه اضافه کنید:

کلاسهایی را برای کار با فایلها در اختیارتان قرار می دهد
using System.IO;
// کلاسهایی را برای کار با بانک اطلاعاتی SQL در اختیارتان قرار می دهد
using System.Data.SqlClient;
 

 10)بر روی دکمه btnSave دو بار کلیک کنید و کد زیر را در رویداد Click آن وارد کنید:

 private void btnSave_Click(object sender, EventArgs e)
   {
   FileStream fs = File.OpenRead(txtFile.Text);
   byte[] fileBinData = new byte[fs.Length];
   fs.Read(fileBinData, 0, fileBinData.Length);
  string source = "server=(local);integrated security = sspi  ;database =myDB";
  string insert = "INSERT INTO tblFile (fldFile) VALUES (@File)";
  SqlConnection sqlConn = new SqlConnection(source);
  SqlCommand sqlComm = new SqlCommand(insert,sqlConn);
  SqlParameter sqlParam = new SqlParameter ("@File",SqlDbType.Image);
  sqlParam.Value = fileBinData;
  sqlComm.Parameters.Add(sqlParam);
  sqlConn.Open();
  int result = sqlComm.ExecuteNonQuery();
  if (result > 0)
  MessageBox.Show("Successfully Saved.");
  sqlConn.Close();
 }

 توضیح در مورد کد:
در خط 1 فایلی را که نام و مسیر آن در عنصر txtFile ذخیره شده است، به صورت فقط خواندنی باز نموده ودر عنصر fs قرار می دهیم. کلاس FileStream متدهایی را برای خواندن و نوشتن فایلها فراهم می کند. در خط 2 یک آرایه از نوع بایت تعریف کردیم و طول آرایه را برابر طول فایل قرار دادیم. در خط 3 با استفاده از متد Read عنصر fs محتویات فایل را خوانده و در آرایه fileBinData قرار دادیم. در خط 4 رشته اتصال به بانک اطلاعاتی را تعریف کردیم. در خط 5 دستور SQL مورد نیاز برای ذخیره فایل در بانک اطلاعاتی را تعریف کردیم. در خط 6 عنصر sqlConn را برای اتصال به بانک اطلاعاتی و در خط 7 عنصر sqlComm را برای اجرای دستورات SQL تعریف کردیم. در خط 8 نوع پارامتر @File را Image در نظر گرفتیم و در خط 9 مقدار آن را برابر fileBinData یا همان محتویات فایل انتخابی قرار دادیم. در خط 10 این پارامتر را به عنصر sqlComm اضافه و ارسال نمودیم. در خط 11 به بانک اطلاعاتی متصل شدیم و در خط 12 دستور SQL را اجرا نمودیم. با این عمل فایل مورد نظر در بانک اطلاعاتی ذخیره می شود.

 11) قبل از آنکه برنامه را اجرا کنید باید بانک اطلاعاتی myDB را بسازید برای اینکار به صورت زیر عمل کنید: 

  • از منوی View گزینه Server Explorer را انتخاب کنید.

  • در پنجره Server Explorer بر روی Data Connections کلیک راست کنید و در منوی ظاهر شده گزینه Create New SQL Servver Database را انتخاب کنید.

  • Server Name را (local) در نظر بگیرید و New Databse Name را myDB انتخاب کنید.

  • دکمه Ok را فشار دهید. مشاهده می کنید که بانک اطلاعاتی myDB به لیست Data Connections اضافه شده است.

  • بر روی myDB دوبار کلیک کنید و در لیستی که در زیر myDB ظاهر می شود بر روی پوشه Tables کلیک راست نمایید. در منوی ظاهر شده گزینه Add New Table را انتخاب کنید.

  • صفحه ای در سمت راست تان باز خواهد شد که در آن می توانید فیلدهای جدول مورد نظرتان را تعریف کنید.

  • فیلدی با نام fldFile و نوع image تعریف کنید. (اگر با SQL Server 2000 کار می کنید نوع فیلد را Image و اگر با SQL Server 2005 کار می کنید نوع فیلد را varbinary(MAX) در نظر بگیرید)

  • جدول را ببندید و با نام tblFile ذخیره کنید.

 12) حالا می توانید برنامه تان را اجرا کنید و نتیجه کارتان را ببینید.
 

ابتدای صفحهF

  صفحه اصلی
    C# آموزش
    مفاهیم شی گرایی
    برنامه های نمونه
    کار با محیط
    معرفی کتاب
    نقشه سایت
    درباره ما
     
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
       
                               
[صفحه اصلی] [آموزش #C] [مفاهیم شی گرایی] [برنامه های نمونه] [کار با محیط] [معرفی کتاب] [نقشه سایت] [درباره ما]