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

时间:2019-08-08 06:00:48

标签: c# sql asp.net .net excel

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

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

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

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

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

try
{
    // Extract file data
    OleDbCommand objOleDB =
        new OleDbCommand("SELECT *FROM [Sheet1$]", myExcelConn);

    // Read the data
    OleDbDataReader objBulkReader = null;
    objBulkReader = objOleDB.ExecuteReader();

    string sCon = @"Connection String";

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

        // Upload
        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;
}

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

这与表的名称无关,列的内容也不相同。我需要从另一张桌子上拿到它。我要上传一个excel,使用excel的一个字段进行查询,然后使用该查询的结果以及excel文件的某些字段来更新表格。

0 个答案:

没有答案