在 C# 编写的 Windows CE 中使用 SQLite

本文关键字:SQLite CE Windows | 更新日期: 2023-09-27 18:35:29

我为我的PDA做了一个应用程序,并使用SQLite作为数据库。我做了如下:

  1. 将System.Data.SQLite.dll添加到我的参考中
  2. 添加了 SQLite.Interop.066.DLL , SQLite.Interop.066.exp , SQLite.Interop.066.lib 到解决方案
  3. 使用 System.Data.SQLite 调用 ref;

我的连接字符串和命令字符串是:

    SQLiteConnection con = new SQLiteConnection("Data Source=BSTDB.sqlite;Version=3");
    string sqlwrite = "INSERT INTO RR (Serial) VALUES('"+cBox1.Text+"')";
    SQLiteCommand cmdwrite = new SQLiteCommand(sqlwrite, con);
    con.Open();
    cmdwrite.ExecuteNonQuery();
    con.Close();

但是当我启动程序时,会发生此错误:

SQLite 错误没有这样的表:

谁能指导我我的问题是什么?

同时,此应用程序现在可以在Windows 7上正常工作。

这是我在dotnetfx4.5中的代码:

    SQLiteConnection con = new SQLiteConnection("Data Source=BSTDB.sqlite;Version=3;");
    string sqlwrite = "INSERT INTO SetSerial (Serial,Tarikh,OpName) VALUES(?,?,?)";
    SQLiteCommand cmdwrite = new SQLiteCommand(sqlwrite, con);
    cmdwrite.Parameters.AddWithValue("@Serial", s1);
    cmdwrite.Parameters.AddWithValue("@Tarikh", s2);
    cmdwrite.Parameters.AddWithValue("@OpName", s3);
    con.Open();
    cmdwrite.ExecuteNonQuery();
    con.Close();

和我的应用程序工作正常

在 C# 编写的 Windows CE 中使用 SQLite

yout 查询中的主要问题(尽管它是非参数化的)是你对表使用架构名称。尝试设置正确的架构,如下所示:

string sqlwrite = "INSERT INTO [BSTDB].[sqlite].[RR] (Serial) VALUES('"+cBox1.Text+"')";

或者,如果您想通过所有者的姓名传递:

string sqlwrite = "INSERT INTO [BSTDB]..[RR] (Serial) VALUES('"+cBox1.Text+"')";