如何解决OleDbCommand 用括号创建excel列名
int index = 0;
foreach (DataColumn col in dt.Columns)
{
datatype[index] = $"[{col.ColumnName}]" + " String";
index++;
}
string query = string.Join(",",datatype);
cmd.CommandText = $"CREATE TABLE [{sheetName}] ({query});";
cmd.ExecuteNonQuery();
而且我有像 Product material[EN]
我使用了断点并检查了我的命令字符串
CREATE TABLE [products]
(
[another Title] String,[Use of product[EN]] String,[Product material[EN]] String,[another Title] String
);
我试过了
Product material[EN]
Product material[[EN]]]
[Product material[EN]]
'[Product material[EN]]'
Product material[[]EN]
['Product material[EN]']
- 让查询中的所有列不带括号
CREATE TABLE [products]
(
another Title String,Use of product[EN] String,Product material[EN] String,another Title String
);
- 让查询中的所有值不带括号
CREATE TABLE [products]
(
another Title String,Use of product EN String,Product material EN String,another Title String
);
但是上面的语法都收到Syntax error in field deFinition.
cmd.CommandText = $"CREATE TABLE [{sheetName}] (";
for (int i = 0; i < dt.Columns.Count; i++)
{
cmd.CommandText = cmd.CommandText + "[@var" + i.ToString() + "] String,";
cmd.Parameters.AddWithValue("@var" + i.ToString(),datatype[i]);
}
cmd.CommandText = cmd.CommandText.Remove(cmd.CommandText.Length - 1,1) + ");";
或改变
cmd.Parameters.AddWithValue("@var" + i.ToString(),datatype[i]);
到
cmd.Parameters.Add(new OleDbParameter("@var" + i.ToString(),datatype[i]));
并获取命令字符串
CREATE TABLE [products]
(
[@var0] String,...
[@varN] String
);
将获得一个成功的 excel 文件,但包含 @varxx
列名称
更改为 Product material(EN)
是可行的,但我需要使用括号 []
如何使用 oledb 在列名中添加括号?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。