【问题标题】:sqlite insert with c#用c#插入sqlite
【发布时间】:2019-06-12 12:03:23
【问题描述】:

我正在使用 c# 测试我的 sqlite 本地服务器,我的连接和查询设置没有问题。我试图将查询复制到 sqlite,它运行没有问题。但是,当我在我的程序中运行它时,没有任何东西插入到数据库中。想知道问题出在哪里。

我已将 db build 操作设置为 Content,如果较新,则将复制到输出目录选项复制

private void insertIntoDB(string query)
{
    using (System.Data.SQLite.SQLiteConnection conn = new System.Data.SQLite.SQLiteConnection("data source=.\\VHTDatabase.db"))
    {
        using (System.Data.SQLite.SQLiteCommand cmd = new System.Data.SQLite.SQLiteCommand(conn))
        {
            conn.Open();

            Console.WriteLine(query);
            cmd.CommandText = query;
            cmd.ExecuteNonQuery();
            conn.Close();


        }
    }
}

【问题讨论】:

  • 我认为它的目标是 bin/Debug 文件夹中的数据库,而不是项目中的数据库,因为这是执行代码的地方。
  • @JessedeWit 我已经将数据库添加到项目中
  • 尝试使用数据库的完整路径而不是连接字符串中的相对路径,然后重试。
  • 在您的 ahrd 磁盘中搜索所有出现的 VHTDatabase.db 并查看每一个;您会在某个地方找到您的数据,而不是在您现在正在查找的数据库中

标签: c# sqlite sql-insert


【解决方案1】:

在你的连接字符串中尝试一个完整的数据库路径

然后可能尝试在打开连接之前添加 CommandText。

我的意思是:

cmd.CommandText = query;
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();

您的数据库是否通过 SELECT 为您提供信息? 也许您需要重新配置数据库的用户,并赋予他写入、更改和删除的权限。

如果没有任何帮助,那么你可以检查一下,如果它给你一个错误。

try
{
    cmd.CommandText = query;
    conn.Open();
    cmd.ExecuteNonQuery();
    conn.Close();
}

catch(Exception ex)
{
    Console.WriteLine(ex);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-27
    • 2013-11-02
    相关资源
    最近更新 更多