有没有一种方法可以将Excel工作表上载到具有不同名称和来源的数据库表中?

时间:2019-08-07 08:47:15

标签: c# sql excel sqlbulkcopy

我正在使用.NET框架制作Web应用程序,我想将Excel文件直接上传到db表中。问题在于Excel文件中的字段之一与db表不同。

我将尝试解释:假设在我的表中是这样的:(姓名,姓氏,客户ID)。

在Excel文件中,我有类似以下内容:(姓名,姓氏,NIF(或ID,但没有客户名))。

NIF与Customer_ID相关,但不在此表中。

所以我想我需要做一个查询,从NIF中寻找Customer_ID。如果一个接一个地完成,那行得通,但是如果我想从Excel文件中进行大量操作,我不知道从哪里开始。

myExcelConn.Open();

    // Extracció de dades del fitxer.
    OleDbCommand objOleDB =
        new OleDbCommand("SELECT *FROM [Sheet1$]", myExcelConn);

    // Lectura de les dades.
    OleDbDataReader objBulkReader = null;
    objBulkReader = objOleDB.ExecuteReader();

    // POSAR LA BBDD BONA.
    string sCon = @"Connection String";

    using (SqlConnection con = new SqlConnection(sCon))
    {
        con.Open();

        // Carregar a la BBDD.
        oSqlBulk = new SqlBulkCopy(con);
        oSqlBulk.DestinationTableName = "Table_name";
        oSqlBulk.WriteToServer(objBulkReader);
    }

    Label1.Text = "Uploaded.";
    Label1.Attributes.Add("style", "color:green");

}
catch (Exception ex)
{

    Label1.Text = "ERROR.";
    Label1.Attributes.Add("style", "color:red");

}
finally
{
    // CLEAR.


    oSqlBulk.Close();
    oSqlBulk = null;
    myExcelConn.Close();
    myExcelConn = null;
}

就像我说的那样,当不需要更改值时,这种方法行得通,但这并不是我真正需要的,而我确实在此上迷失了。

编辑:与表的名称无关,列的内容不相同。我需要从另一个表中获取它。

0 个答案:

没有答案