3

我正在编写一些 C# 代码,该代码基于大量动态数据创建一个新的 Sqlite 数据库,我被困在它试图确定是否需要为新数据创建或更改列的部分。

通过获取 DataTable 并查看 DataColumn 数据类型和大小来处理表的现有方法在创建新表的过程中似乎不起作用,因为 DataColumn.DataType 在以前的所有情况下始终是 System.Object填充了用于创建表的正确类型,例如大小为 128 的字符串。使用非常简单的代码检索它...

IDbCommand cmd = new SQLiteCommand("SELECT * FROM Table", connection);
reader = cmd.ExecuteReader ();
dt.Load (reader);

我手动添加了一个包含单个填充列的行,然后瞧!它正确返回大小为 128 的字符串。由于它使用的是数据库模式(查找长度 128)而不是我添加的行中的数据,为什么它不适用于空表?

有人可以建议解决方法吗?

4

1 回答 1

1

SQLite 使用动态类型,因此您在创建表时不需要使用任何特定的数据类型。(读取查询的列类型没有多大意义,因为您可以在同一列中获取另一种类型的值。)

于 2013-10-02T21:39:22.453 回答