【发布时间】:2015-08-05 00:05:02
【问题描述】:
我想创建一个 Excel 表格,使用 OleDb:
OleDbCommand oleDbCommand = new OleDbCommand();
oleDbCommand.Connection = oleDbConnection;
String commandText = "CREATE TABLE" + " [" + sheetModel.Sheet.Name + "] ";
commandText += "(";
for (int index = 0; index < spalten; index++)
{
String _header = sheetModel.DT1.Rows[heaader].ItemArray[index].ToString();
oleDbCommand.Parameters.Add(new OleDbParameter("@var" + (index + 1).ToString(), _header));
if (index > 0)
{
commandText += ", ";
}
commandText += "@var" + index.ToString() + " VARCHAR";
}
commandText += ");";
try
{
oleDbCommand.CommandText = commandText;
oleDbCommand.ExecuteNonQuery();
oleDbCommand.Parameters.Clear();
}
catch (Exception exception)
{
MessageBox.Show(exception.Message);
return;
}
Excel 表格的结果是,
@var0 @var1 @var2 @var3 @var4 @var5
但我应该是这样的:
"PREIS/Stk. EURO" "Stk." "" "产品" "Artikelmerkmale" "Sonstige"
我的错误在哪里?
该代码可以正常插入值。
【问题讨论】:
-
我不知道您的确切问题是什么...您的主要问题是表中的第一行不包含正确的标题标题(Preis、Stück、Produkt 等),而是使用 @var1-5 或其他?
-
您在哪里提供字符串中的标题标题?你只是在循环中提供@var+(index + 1)。
-
@M463:是的,你是对的,这是我的问题!
-
@learningNew: String _header = sheetModel.DT1.Rows[header].ItemArray[index].ToString(); // DT1 = 带有信息的数据表...
标签: c# sql excel oledb oledbcommand