C# 我在尝试将数据表中的行插入Excel工作表时遇到问题

C# 我在尝试将数据表中的行插入Excel工作表时遇到问题,c#,excel,C#,Excel,列名中有空格,所以在列名中使用[],在参数名中用uu替换空格 修改代码行,如下所示: 列名中有空格,所以在列名中使用[],在参数名中用uu替换空格 修改代码行,如下所示: 请提供更多信息,错误是什么?INSERT INTO语句中的语法错误。请提供更多信息,错误是什么?INSERT INTO语句中的语法错误。 DataSet excelDataSet = new DataSet(); string connectionString = "Provider=Microsoft.ACE.OLEDB.1

列名中有空格,所以在列名中使用[],在参数名中用uu替换空格

修改代码行,如下所示:

列名中有空格,所以在列名中使用[],在参数名中用uu替换空格

修改代码行,如下所示:


请提供更多信息,错误是什么?INSERT INTO语句中的语法错误。请提供更多信息,错误是什么?INSERT INTO语句中的语法错误。
DataSet excelDataSet = new DataSet();
string connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source='"+fullpath+"';Extended Properties=\"Excel 8.0;HDR=YES\";";

/*using (OleDbConnection conn = new OleDbConnection(connectionString))
{
    conn.Open();
    OleDbDataAdapter objDA = new OleDbDataAdapter("select * from [Sheet1$]", conn);                  

    objDA.Fill(excelDataSet);
    conn.Close();
}*/
string columns = string.Join(",", StdTable.Columns.Cast<DataColumn>().Select(c => c.ColumnName));
columns = columns.Replace(",F1", "");
string values = string.Join(",", StdTable.Columns.Cast<DataColumn>().Select(c => string.Format("@{0}", c.ColumnName)));
values = values.Replace(",@F1", "");
string sqlCommandInsert = string.Format("INSERT INTO [Sheet1$] ({0}) VALUES ({1})", columns, values);
using (OleDbConnection conn1 = new OleDbConnection(connectionString))
using (var cmd1 = new OleDbCommand(sqlCommandInsert, conn1))
{
    conn1.Open();
    foreach (DataRow row in StdTable.Rows)
    {
        cmd1.Parameters.Clear();
        foreach (DataColumn col in StdTable.Columns)
        {

           cmd1.Parameters.AddWithValue("@" + col.ColumnName, row[col]);
           //cmd1.CommandText = sqlCommandInsert;
        }
        cmd1.ExecuteNonQuery();
    }
    //cmd1.ExecuteNonQuery();
}

//And Insert query values
INSERT INTO [Sheet1$] (Sno,Customer,Vendor code,Circle,PO NO) VALUES (@Sno,@Customer,@Vendor code,@Circle,@PO NO)
string columns = string.Join(",", StdTable.Columns.Cast<DataColumn>().Select(c => string.Foramt("[{0}]", c.ColumnName)));
columns = columns.Replace(",F1", "");
string values = string.Join(",", StdTable.Columns.Cast<DataColumn>().Select(c => string.Format("@{0}", c.ColumnName.Replace(" ", "_"))));
values = values.Replace(",@F1", "");


cmd1.Parameters.AddWithValue("@" + col.ColumnName.Replace(" ", "_"), row[col]);