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

时间:2014-12-29 11:58:37

标签: c# sqlite windows-ce

我为我的PDA制作了一个应用程序并使用SQLite作为数据库。我这样做了:

  1. 将System.Data.SQLite.dll添加到我的参考
  2. 将SQLite.Interop.066.DLL,SQLite.Interop.066.exp,SQLite.Interop.066.lib添加到解决方案
  3. 使用System.Data.SQLite;
  4. 调用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();
    

    我的应用运行正常

1 个答案:

答案 0 :(得分:0)

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

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

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

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