gpt4 book ai didi

c# - 错误的数据类型 OleDB 创建表

转载 作者:行者123 更新时间:2023-11-30 22:14:55 25 4
gpt4 key购买 nike

我正在使用以下函数创建 Access 表:

        public static void createtable(string path, string tablename, string[] columnnames)
{
try
{
string connectionstring = creadteconnectionstring(path);
OleDbConnection myConnection = new OleDbConnection(connectionstring);
myConnection.Open();
OleDbCommand myCommand = new OleDbCommand();
myCommand.Connection = myConnection;
string columnam = "[" + columnnames[0] + "] Text";

for (int i = 1; i < columnnames.Length; i++)
{
columnam = columnam + ", [" + columnnames[i] + "] Text";
}

myCommand.CommandText = "CREATE TABLE [" + tablename + "](" + columnam + ")";
myCommand.ExecuteNonQuery();
myCommand.Connection.Close();
Console.WriteLine("Access table " + tablename + " created.");
}
catch
{
Console.WriteLine("Access table " + tablename + " already exists.");
return;


}


}

但是,如果我在 MS access 中打开 access 表,数据类型是 Memo,而不是 Text。其他数据类型 link MS 指定的似乎根本不起作用。

欢迎提出任何想法?谢谢!

最佳答案

Access DDL TEXT 数据类型的行为因执行语句的上下文而异。

在 Access 的 DAO 中,这会将 bar 创建为文本字段。但是在 Access 中的 ADO 中,bar 将是备忘录类型。

CREATE TABLE tblFoo (bar TEXT)

从 OleDb 连接执行该语句会产生与在 Access 中使用 ADO 相同的结果。

如果您希望 bar 成为实际的文本字段,请包含字段长度 <= 255。

CREATE TABLE tblFoo (bar TEXT(255))

关于c# - 错误的数据类型 OleDB 创建表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18256751/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com