【问题标题】:Simple SQLite query not working简单的 SQLite 查询不起作用
【发布时间】:2011-11-13 03:52:59
【问题描述】:

我使用的是 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)使用密码时会出现问题。

【问题讨论】:

  • 希望您在下面的代码中关闭连接。考虑为此使用using。您能否发布您使用的 linqpad 查询来为您提供发布的结果。
  • @AdamWenger:添加了完整代码。和 linqpad 查询/输出。

标签: c# .net sql sqlite


【解决方案1】:

检查查询末尾的分号。也许通过删除它您的查询执行正确。 另一方面,每件事通常都是正确的。

【讨论】:

    【解决方案2】:

    在我看来没问题 - 也许是这样:

    var result 
    

    将其更改为 SqlCeDataReader。这是我能看到的唯一“错误”。

    完成后不要忘记关闭连接。

    【讨论】:

    • 我认为问题不在这里。基本上,编译器在编译中将“var”转换为您的真实类型。是的,我在“真实”代码中关闭了连接。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多