使用 ADO 创建 Excel 电子表格时不能使用哪些列名称。

我有一个在电子表格中创建页面的语句:

CREATE TABLE [TableName] (Column string, Column2 string);

我发现使用列名 Date 或者 Container 执行该语句时会产生错误。

有人有不能用作列名称的完整(或部分)单词列表吗?这是为了在用户驱动的环境中使用,“修复”列比崩溃更好。

我的解决方法是替换任何出现的 Date 或者 ContainerDate_Container_ 分别。

有帮助吗?

解决方案

您可以对任何字段名使用括号,例如:

CREATE TABLE [TableName] ([Date] string, [Container] string)

完整示例:

using (OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\temp\\test.xls;Extended Properties='Excel 8.0;HDR=Yes'"))
{
  conn.Open();
  OleDbCommand cmd = new OleDbCommand("CREATE TABLE [TableName] ([Date] string, [Container] string)", conn);
  cmd.ExecuteNonQuery();
}

其他提示

这看起来更像是 SQL 保留字的问题。这是一个 好清单

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top