我正在编写一些基于大量动态数据创建新的 Sqlite 数据库的 C# 代码,我卡在了一个部分,它试图确定是否需要为即将到来的新数据创建或更改列中。
通过获取 DataTable 并查看 DataColumn 数据类型和大小来处理表的现有方法在创建新表的过程中似乎不起作用,因为在所有以前的情况下,DataColumn.DataType 始终是 System.Object它已填充了用于创建表的正确类型,例如大小为 128 的字符串。使用非常简单的代码沿着...检索它
IDbCommand cmd = new SQLiteCommand("SELECT * FROM Table", connection);
reader = cmd.ExecuteReader ();
dt.Load (reader);
我手动添加了一行,其中只有一个填充列,然后瞧!它正确返回大小为 128 的字符串。由于它使用的是数据库模式(发现长度为 128)而不是我添加的行中的数据,为什么它不能使用空表?
有人可以建议解决方法吗?
最佳答案
SQLite 使用 dynamic typing ,因此您在创建表时不需要使用任何特定的数据类型。 (读取查询的列类型没有多大意义,因为您可以在同一列中获取另一种类型的值。)
关于database - 如何在空表中获取正确的 DataColumn 数据类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19145937/