Вопрос по c#, excel – Импортируйте файл Excel в Microsoft SQL Server, используя C #

0

У меня есть программа на C #, которую я хочу импортировать в Excel файл Microsoft SQL Server 2008 R2.

Может кто-нибудь дать мне ссылку или учебник, где я могу полностью понять, как это сделать?

Я давно этим занимаюсь и не знаю, как это реализовать.

Пожалуйста помоги. Благодарность

Пожалуйста, пройдите по этой ссылке ........ Aspdotnet-suresh.com / 2010/09 / ... Kartik Patel
это работает на тебя ?? Pranay Rana

Ваш Ответ

4   ответа
6
string excelConnectionString = @"Provider=Microsoft 
.Jet.OLEDB.4.0;Data Source=Book1.xls;Extended 
Properties=""Excel 8.0;HDR=YES;"""; 

// Create Connection to Excel Workbook

Мы можем импортировать Excel на сервер SQL, как это

using (OleDbConnection connection = new OleDbConnection(excelConnectionString)){

OleDbCommand command = new OleDbCommand ("Select ID,Data FROM [Data$]", connection);

connection.Open(); 


`// Create DbDataReader to Data Worksheet `
using (DbDataReader dr = command.ExecuteReader()) 
{ 
    // SQL Server Connection String 
    string sqlConnectionString = "Data Source=.; 
       Initial Catalog=Test;Integrated Security=True"; 


    // Bulk Copy to SQL Server 
    using (SqlBulkCopy bulkCopy = 
               new SqlBulkCopy(sqlConnectionString)) 
    { 
        bulkCopy.DestinationTableName = "ExcelData"; 
        bulkCopy.WriteToServer(dr); 
    } 
Пожалуйста, пометьте как ответ, если это поможет вам ... JayOnDotNet
3

Этот код также может помочь вам.

private void processExcel(string filename)
{
    filename = Server.MapPath("~/Files/WM-0b23-productsBook.xlsx");
    Microsoft.Office.Interop.Excel.Application xlApp;
    Microsoft.Office.Interop.Excel.Workbook xlWorkBook;
    Microsoft.Office.Interop.Excel.Worksheet xlWorkSheet;

    var missing = System.Reflection.Missing.Value;

    xlApp = new Microsoft.Office.Interop.Excel.Application();
    xlWorkBook = xlApp.Workbooks.Open(filename, false, true, missing, missing, missing, true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, '\t', false, false, 0, false, true, 0);
    xlWorkSheet = (Microsoft.Office.Interop.Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);

    Microsoft.Office.Interop.Excel.Range xlRange = xlWorkSheet.UsedRange;
    Array myValues = (Array)xlRange.Cells.Value2;

    int vertical = myValues.GetLength(0);
    int horizontal = myValues.GetLength(1);

    System.Data.DataTable dt = new System.Data.DataTable();

    // must start with index = 1
    // get header information
    for (int i = 1; i <= horizontal; i++)
    {
        dt.Columns.Add(new DataColumn(myValues.GetValue(1, i).ToString()));
    }

    // Get the row information
    for (int a = 2; a <= vertical; a++)
    {
        object[] poop = new object[horizontal];
        for (int b = 1; b <= horizontal; b++)
        {
            poop[b - 1] = myValues.GetValue(a, b);
        }
        DataRow row = dt.NewRow();
        row.ItemArray = poop;
        dt.Rows.Add(row);
    }

    // assign table to default data grid view
    GridView1.DataSource = dt;
    GridView1.DataBind();

    xlWorkBook.Close(true, missing, missing);
    xlApp.Quit();

    releaseObject(xlWorkSheet);
    releaseObject(xlWorkBook);
    releaseObject(xlApp);
}

private void releaseObject(object obj)
{
    try
    {
        System.Runtime.InteropServices.Marshal.ReleaseComObject(obj);
        obj = null;
    }
    catch (Exception ex)
    {
        obj = null;
        MessageBox.Show(",Unable to release the Object " + ex.ToString());
    }
    finally
    {
        GC.Collect();
    }
}
hi, это полезно, но при импорте возникает ошибка, иногда типы данных не совпадают, даже если они одинаковы / похожи. transformer
2

что самые полезные ответы уже были даны. Я не буду описывать способ C #, но, скорее, дам вам простой способ сделать это без C #:

Откройте свой MS Access, свяжите свою базу данных MS SQL через ODBC, откройте свою таблицу в Access и вставьте туда свои записи Excel с помощью копирования и вставки (предварительно отформатированные в соответствии со схемой таблицы.)

Этот способ очень быстрый и полезный, когда вы выполняете одноразовый импорт данных.

Похожие вопросы