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