SQLite添加空白'别名'列进行查询

时间:2015-03-02 10:11:31

标签: sqlite

在VB.net项目中使用SQLite我有一个SQL字符串,可以在填充数据表时动态创建(添加)新列。

SQLString = "Select Column1, Column2, Null as 'NewColumn', column4 from Table

以上工作(过去3年)并允许我在不更改数据库结构的情况下向表中添加临时列。这是直到SQLite DLL版本1.0.95.0。以上现在导致模式缺少键列column1。也就是说,数据存在,但表不是 被认为有一个关键专栏。使用别名列仍然有效,我可以

 SQLString = "Select Column1, Column2, Column2 as 'NewColumn', column4 from Table

然而,其他人使用数据库中的“专用”空白列充当新列的填充符有没有办法做到这一点?

更多信息: 我使用System.Data.SQLite.dll在VB.net中编写SQLite编码。我已经使用了从版本1.0.81.0到1.0.94.0

的这个过程

我昨天从SQLite网站下载了System.Data.SQLite(1.0.95.0)版本。执行此DLL后,我的程序失败,在尝试使用特定表时出现错误“表没有主键”。当我恢复到1.0.94.0 DLL时没有问题,程序按预期工作,并且过去3年使用上述不同版本。

除了程序引用不同版本的DLL之外,没有其他任何更改。我可以来回走动;从94到95 =失败。从95回到94 =好。

该表确实有一个主键。数据IS被填充到表中并具有正确的模式类型。但是,当我尝试在表上找到一行时,我收到错误消息。

Dim findrow As DataRow = InfoRows.Rows.Find(“Sample1”)因错误而崩溃。

真正的示例是一个非常复杂的表和Query但是我可以使用上面的SQL字符串简单地重现错误,取出“Null as'NewColumn'”并且没有错误。

2 个答案:

答案 0 :(得分:0)

这是1.0.95.0中的bug,在下一个版本中为fixed

答案 1 :(得分:0)

我将问题提交给SQLite作为错误。它没有花很长时间,我交换的信件表明问题将在下一个版本中得到解决。来自SQLite的优质服务!谢谢。

编辑: 现在可以通过System.Data.SQLite.DLL版本1.0.96.0修复该问题了!