Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Bagaimana cara memasukkan/mengambil file Excel ke kolom varbinary(max) di SQL Server 2008?

Jika Anda ingin melakukannya di ADO.NET langsung, dan file Excel Anda tidak terlalu besar sehingga bisa masuk ke dalam memori sekaligus, Anda bisa menggunakan dua metode ini:

// store Excel sheet (or any file for that matter) into a SQL Server table
public void StoreExcelToDatabase(string excelFileName)
{
    // if file doesn't exist --> terminate (you might want to show a message box or something)
    if (!File.Exists(excelFileName))
    {
       return;
    }

    // get all the bytes of the file into memory
    byte[] excelContents = File.ReadAllBytes(excelFileName);

    // define SQL statement to use
    string insertStmt = "INSERT INTO dbo.YourTable(FileName, BinaryContent) VALUES(@FileName, @BinaryContent)";

    // set up connection and command to do INSERT
    using (SqlConnection connection = new SqlConnection("your-connection-string-here"))
    using (SqlCommand cmdInsert = new SqlCommand(insertStmt, connection))
    {
         cmdInsert.Parameters.Add("@FileName", SqlDbType.VarChar, 500).Value = excelFileName;
         cmdInsert.Parameters.Add("@BinaryContent", SqlDbType.VarBinary, int.MaxValue).Value = excelContents;

         // open connection, execute SQL statement, close connection again
         connection.Open();
         cmdInsert.ExecuteNonQuery();
         connection.Close();
    }
}

Untuk mengambil kembali lembar Excel dan menyimpannya dalam file, gunakan metode ini:

public void RetrieveExcelFromDatabase(int ID, string excelFileName)
{
    byte[] excelContents;

    string selectStmt = "SELECT BinaryContent FROM dbo.YourTableHere WHERE ID = @ID";

    using (SqlConnection connection = new SqlConnection("your-connection-string-here"))
    using (SqlCommand cmdSelect = new SqlCommand(selectStmt, connection))
    {
        cmdSelect.Parameters.Add("@ID", SqlDbType.Int).Value = ID;

        connection.Open();
        excelContents = (byte[])cmdSelect.ExecuteScalar();
        connection.Close();
    }

    File.WriteAllBytes(excelFileName, excelContents);
 }

Tentu saja, Anda dapat menyesuaikan ini dengan kebutuhan Anda - Anda juga dapat melakukan banyak hal lain - tergantung pada apa yang benar-benar ingin Anda lakukan (tidak terlalu jelas dari pertanyaan Anda).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mengapa saya tidak dapat menggunakan alias dalam kolom count(*) dan merujuknya ke dalam klausa yang memiliki?

  2. Opsi Pemantauan Basis Data Teratas Tersedia untuk Bisnis Anda

  3. Tambahkan kolom ke tabel dengan nilai default sama dengan nilai kolom yang ada

  4. Cara Mengonversi Huruf Kecil ke Huruf Besar di SQL Server – UPPER ()

  5. Bagaimana Anda mengelompokkan berdasarkan interval waktu?