如何在空表中获取DataColumn的正确DataType?

时间:2013-10-02 20:09:38

标签: database sqlite ado.net

我正在研究一些基于大量动态数据创建新Sqlite数据库的C#代码,并且我正试图确定是否需要为新数据创建或更改列in。

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

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

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

是否有人建议的解决方法?

1 个答案:

答案 0 :(得分:1)

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