Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将excel数据导入SQL_C#_Sql_Asp.net_Excel_Import - Fatal编程技术网

C# 将excel数据导入SQL

C# 将excel数据导入SQL,c#,sql,asp.net,excel,import,C#,Sql,Asp.net,Excel,Import,我正在使用ASP.net制作一些应用程序,但是我遇到了一个问题,问题是用户应该导入excel文件(文件的模式总是相同的),但是在excel文件中有一个有许多名称的单元格,如下所示 ID Names 1 Mick Jagger Elton John 2 James Hetfield Axl Rose 依此类推,我每个单元格有两个或更多的名字。。。到目前为止,我已将该excel文件导入数据集 sqlCMD.C

我正在使用ASP.net制作一些应用程序,但是我遇到了一个问题,问题是用户应该导入excel文件(文件的模式总是相同的),但是在excel文件中有一个有许多名称的单元格,如下所示

 ID         Names
  1       Mick Jagger
          Elton John
  2       James Hetfield
          Axl Rose
依此类推,我每个单元格有两个或更多的名字。。。到目前为止,我已将该excel文件导入数据集

sqlCMD.Connection.Open();
            using (OleDbConnection excelConnection = new OleDbConnection(excelConnString))
            {
                using (OleDbCommand cmd = new OleDbCommand("Select " + CompanyID + ", * 
                                                            From [Sheet1$]"
                 , excelConnection))
                {
                    OleDbDataAdapter daSheet = 
                    new OleDbDataAdapter(cmd.CommandText, excelConnection);

                    DataTable table;
                    table = new DataTable();
                    daSheet.Fill(table);
                    PreparedData.Tables.Add(table);
                }
            }
所以在成功导入之后,我将对象列表导入到数据集中,这非常棒,但是每个单元格有2个或更多的名称给我带来了麻烦,因为在对象值中它是这样写的“Mick Jagger\n Elton John”,所以我尝试替换它并将其添加回数据集中(我尝试创建新的数据集,但效果不好)

那么,你能帮助我并建议我如何修改它吗

PreparedData.Tables[0].Rows[i].ItemArray[s] = Replaced;

当您引用
ItemArray
属性时,NET Framework将在当前行中生成数据的副本。如果试图使用它设置新值,则在副本上设置值,而不是在原始行数据上设置值

这是来自的
ItemArray
属性的源代码

     SqlBulkCopy bulkcopy = new SqlBulkCopy(sqlCMD.Connection);
     bulkcopy.DestinationTableName = "Excel_Import";
        try
        {
            bulkcopy.WriteToServer(FixedData);
        }
        catch (Exception e)
        {

        }
PreparedData.Tables[0].Rows[i].ItemArray[s] = Replaced;
    public object[] ItemArray {
        get {
            int record = GetDefaultRecord();
            _table.recordManager.VerifyRecord(record, this);
            object[] values = new object[_columns.Count];
            for (int i = 0; i < values.Length; i++) {
                DataColumn column = _columns[i];
                VerifyValueFromStorage(column, DataRowVersion.Default, column[record]);
                values[i] = column[record];
            }
            return values;
        }
 ValueToReplace = PreparedData.Tables[0].Rows[i][s].ToString();
 PreparedData.Tables[0].Rows[i][s] = ValueToReplace.Replace("\n", ";");