我正在使用sqlite紧凑版,我使用linqdpad做了一些测试,工作正常。但是当我转到C#代码时,它不起作用。我尝试使用以下代码从数据库中获取字段:
using System;
using System.Data.SqlServerCe;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
var conStr = @"data source=C:\path\db.sdf;password=...";
var con = new SqlCeConnection(conStr);
con.Open();
var cmd = new SqlCeCommand("select * from quest", con);
SqlCeDataReader result = cmd.ExecuteReader();
Console.Write(result.Read());
Console.ReadLine();
con.Close();
}
}
}
result.Read()
返回false
。好像没有田地。我该怎么解决?
使用linqpad我可以看到类似的内容:
查询:
select * from quest;
更新 当数据库(.sdf)使用密码时会发生此问题。
答案 0 :(得分:0)
检查查询末尾的分号。可以删除它,查询执行权限。 另一方面,每件事情都是正确的。
答案 1 :(得分:0)
我看起来没问题 - 也许是这样:
var result
将其更改为SqlCeDataReader。这是我能看到的唯一“错误”。
完成后也不要忘记关闭连接。