Я использую следующую функцию, чтобы создать таблицу доступа:Неправильный тип данных OleDB Создать таблицу
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 доступ к типу данных является Memo, а не текст. Другие типы данных link, указанные MS, не работают вообще.
Любые идеи приветствуются? Благодаря!
Я думаю, что вы используете 'VARCHAR (50)' или 'NVARCHAR (50)' вместо 'Text'. Число - это длина. – LarsTech