توضیحات و دانلود

وارد کردن فایل های Document Word با استفاده از C # و VB.Net در جدول پایگاه دادهSQL Server
0 0
وارد کردن فایل های Document Word با استفاده از C # و VB.Net در جدول پایگاه دادهSQL Server

با سلام قبلاً نحوه ذخیره و بازیابی فایل ها در پایگاه داده SQL Server با استفاده از ASP.Net را در مقاله ذخیره و بازیابی فایل ها از پایگاه داده SQL Server با استفاده از ASP.Netتوضیح داده ایم .

این مقاله ادامه همان مقاله است زیرا اغلب در مورد چگونگی ذخیره مستقیم فایل در پایگاه داده با استفاده از کنترل FileUpload  سؤال شده است .

می توانید فایل هایی مانند تصاویر ، Document Word را آپلود کنید. اسناد اکسل ، سند قابل حمل (PDF) ، فایل های متنی آنها را در بانک اطلاعات ذخیره می کند

طراحی پایگاه داده

در اینجا یک بانک اطلاعاتی به نام dbFiles ایجاد کرده ایم و دارای جدول به نام tblFiles است .

همچنین دارای 4 فیلد است. توضیحات کامل در شکل زیر موجود است

همانطور که در بالا قسمت id می توانید  مشاهده کنید ، ویژگی Identity را تنظیم کرده ایم ، به گونه ای که به طور خودکار خودش را افزایش می دهد.

id - شماره شناسایی

Name - نام فایل

Content Type - نوع محتوا برای پرونده

Data - فایل ذخیره شده به عنوان داده دوتایی

رشته اتصال

در زیر رشته اتصال به پایگاه داده قرار دارد. شما می توانید آن را متناسب با خود تغییر دهید

<connectionStrings>

<add name="conString" connectionString="Data Source=.\SQLEXPRESS;database=dbFiles; Integrated Security=true"/>

</connectionStrings >

برای شروع ، یک کنترل FileUpload ، یک دکمه و یک برچسب برای نمایش پیام ها اضافه کرده ایم

<asp:FileUpload ID="FileUpload1" runat="server" />

<asp:Button ID="btnUpload" runat="server" Text="Upload"

OnClick="btnUpload_Click" />

<br />

<asp:Label ID="lblMessage" runat="server" Text=""

Font-Names = "Arial"></asp:Label>

و اینجا در رویداد دکمه بارگذاری کلیک شده است

C #

protected void btnUpload_Click(object sender, EventArgs e)

{

    // Read the file and convert it to Byte Array

    string filePath = FileUpload1.PostedFile.FileName;  

    string filename = Path.GetFileName(filePath);

    string ext = Path.GetExtension(filename);

    string contenttype = String.Empty;

 

    //Set the contenttype based on File Extension

    switch(ext)

    {

        case ".doc":

            contenttype = "application/vnd.ms-word";

            break;

        case ".docx":

            contenttype = "application/vnd.ms-word";

            break;

        case ".xls":

            contenttype = "application/vnd.ms-excel";

            break;

        case ".xlsx":

            contenttype = "application/vnd.ms-excel";

            break;

        case ".jpg":

            contenttype = "image/jpg";

            break;

        case ".png":

            contenttype = "image/png";

            break;

        case ".gif":

            contenttype = "image/gif";

            break;

        case ".pdf":

            contenttype = "application/pdf";

            break;

    }

    if (contenttype != String.Empty)

    {

 

        Stream fs = FileUpload1.PostedFile.InputStream;

        BinaryReader br = new BinaryReader(fs);

        Byte[] bytes = br.ReadBytes((Int32)fs.Length);

 

        //insert the file into database

        string strQuery = "insert into tblFiles(Name, ContentType, Data)" +

           " values (@Name, @ContentType, @Data)";

        SqlCommand cmd = new SqlCommand(strQuery);

        cmd.Parameters.Add("@Name", SqlDbType.VarChar).Value = filename;

        cmd.Parameters.Add("@ContentType", SqlDbType.VarChar).Value

          = contenttype;

        cmd.Parameters.Add("@Data", SqlDbType.Binary).Value = bytes;

        InsertUpdateData(cmd);

        lblMessage.ForeColor = System.Drawing.Color.Green;  

        lblMessage.Text = "File Uploaded Successfully";

    }

    else

    {

        lblMessage.ForeColor = System.Drawing.Color.Red;   

        lblMessage.Text = "File format not recognised." +

          " Upload Image/Word/PDF/Excel formats";

    }

}

VB.Net

Protected Sub btnUpload_Click(ByVal sender As Object, ByVal e As EventArgs)

  ' Read the file and convert it to Byte Array

  Dim filePath As String = FileUpload1.PostedFile.FileName

  Dim filename As String = Path.GetFileName(filePath)

  Dim ext As String = Path.GetExtension(filename)

  Dim contenttype As String = String.Empty

 

  'Set the contenttype based on File Extension

  Select Case ext

    Case ".doc"

      contenttype = "application/vnd.ms-word"

      Exit Select

    Case ".docx"

      contenttype = "application/vnd.ms-word"

      Exit Select

    Case ".xls"

      contenttype = "application/vnd.ms-excel"

      Exit Select

    Case ".xlsx"

      contenttype = "application/vnd.ms-excel"

      Exit Select

    Case ".jpg"

      contenttype = "image/jpg"

      Exit Select

    Case ".png"

      contenttype = "image/png"

      Exit Select

    Case ".gif"

      contenttype = "image/gif"

      Exit Select

    Case ".pdf"

      contenttype = "application/pdf"

      Exit Select

    End Select

    If contenttype <> String.Empty Then

      Dim fs As Stream = FileUpload1.PostedFile.InputStream

      Dim br As New BinaryReader(fs)

      Dim bytes As Byte() = br.ReadBytes(fs.Length)

 

      'insert the file into database

       Dim strQuery As String = "insert into tblFiles" _

       & "(Name, ContentType, Data)" _

       & " values (@Name, @ContentType, @Data)"

       Dim cmd As New SqlCommand(strQuery)

       cmd.Parameters.Add("@Name", SqlDbType.VarChar).Value = filename

       cmd.Parameters.Add("@ContentType", SqlDbType.VarChar).Value _

       = contenttype

       cmd.Parameters.Add("@Data", SqlDbType.Binary).Value = bytes

       InsertUpdateData(cmd)

       lblMessage.ForeColor = System.Drawing.Color.Green

       lblMessage.Text = "File Uploaded Successfully"

     Else

       lblMessage.ForeColor = System.Drawing.Color.Red

       lblMessage.Text = "File format not recognised." _

       & " Upload Image/Word/PDF/Excel formats"

     End If

  End Sub

کد فوق به سادگی فایل آپلود شده را به عنوان Stream خوانده و سپس با استفاده از Binary Reader آرایه جریان به بایت را تبدیل می کند و سرانجام آرایه های بایت در دیتابیس ذخیره می شود.

عملکرد InsertUpdateData در زیر آورده شده است

C #

private Boolean InsertUpdateData(SqlCommand cmd)

{

    String strConnString = System.Configuration.ConfigurationManager

    .ConnectionStrings["conString"].ConnectionString;

    SqlConnection con = new SqlConnection(strConnString);

    cmd.CommandType = CommandType.Text;

    cmd.Connection = con;

    try

    {

        con.Open();

        cmd.ExecuteNonQuery();

        return true;

    }

    catch (Exception ex)

    {

        Response.Write(ex.Message);

        return false;

    }

    finally

    {

        con.Close();

        con.Dispose();

    }

}

VB.Net

Public Function InsertUpdateData(ByVal cmd As SqlCommand) As Boolean

    Dim strConnString As String = System.Configuration.

    ConfigurationManager.ConnectionStrings("conString").ConnectionString

    Dim con As New SqlConnection(strConnString)

    cmd.CommandType = CommandType.Text

    cmd.Connection = con

    Try

      con.Open()

      cmd.ExecuteNonQuery()

      Return True

    Catch ex As Exception

      Response.Write(ex.Message)

      Return False

    Finally

      con.Close()

      con.Dispose()

    End Try

End Function

 


دانلود
  • لینک های دانلود دوره های آموزشی تا پایان دوره قابل دانلود می باشد.
  • برای خارج کردن فایل ها از حالت فشرده از ورژن جدید نرم افزار winrar استفاده کنید.
  • برای خارج کردن فایل ها از حالت فشرده لینک های دانلودی که چندین قسمت می باشند فقط قسمت اول را از حالت فشرده خارج کنید.
  • لطفا توضیحات نوشته شده برای مطالب را با دقت بخوانید.
  • برای نمایش فیلم ها می توانید از نرم افزار هایی مانند Km Player , VLC Player یا Media Player Classic استفاده کنید.

ارسال نظر
ارسال پیام به :