SQLite Insert Into命令导致崩溃。 (C#)

时间:2018-02-10 21:49:29

标签: c# sqlite

我对C#有点新,对SQLite来说是全新的。对于这个项目来说,SQLite可能有些过分,但我想学习它,所以无论如何我都在使用它。我正在做一个不和谐机器人。问题是每当我执行我的唯一命令时它就会终止。我已经设法找到问题的根源,并在SQLite中找到一个命令,将数据插入一行。

m_dbConnection.Open();
string sql = $"INSERT INTO `Cases` ( plaintiffid, accusedid, channelid ) values ( {plaintiff.Id.ToString()}, {accused.Id.ToString()}, {caseChannel.Id.ToString()} )";
SQLiteCommand command = new SQLiteCommand(sql, m_dbConnection);
command.ExecuteNonQuery();
m_dbConnection.Close();

每次启动程序时,它都会运行:

public static SQLiteConnection m_dbConnection { get; private set; }
public static string CasePath { get; } = System.Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"/DiscourtBot/Cases.sqlite";
public static void Start()
{
    if (!File.Exists("Cases.sqlite"))
    {
        SQLiteConnection.CreateFile("Cases.sqlite");
        m_dbConnection = new SQLiteConnection("Data Source=Cases.sqlite;Version=3;");
        m_dbConnection.Open();
        string sql = "CREATE TABLE `Cases` ( plaintiffid INTEGER, accusedid INTEGER, channelid INTEGER UNIQUE )";
        SQLiteCommand command = new SQLiteCommand(sql, m_dbConnection);
        command.ExecuteNonQuery();
        m_dbConnection.Close();
    }
    else m_dbConnection = new SQLiteConnection("Data Source=Cases.sqlite;Version=3;");
}

不会抛出异常。

我在另一个程序中测试了一些代码,这段代码也导致它终止。

SQLiteConnection.CreateFile("Cases.sqlite");
m_dbConnection = new SQLiteConnection("Data Source=Cases.sqlite;Version=3;");
m_dbConnection.Open();
string sql = "CREATE TABLE `Cases` ( plaintiffid BIGINT, accusedid BIGINT, channelid BIGINT )";
SQLiteCommand command = new SQLiteCommand(sql, m_dbConnection);
command.ExecuteNonQuery();
m_dbConnection.Close();

m_dbConnection.Open();
string sqll = $"INSERT INTO `Cases` ( plaintiffid, accusedid, channelid ) values ( 5, 5, 5 )";
SQLiteCommand commandd = new SQLiteCommand(sqll, m_dbConnection);
commandd.ExecuteNonQuery();
m_dbConnection.Close();

Discord ID通常如下所示:394343217715216384 如果有人能帮助我,我会很感激。

1 个答案:

答案 0 :(得分:1)

经过一番混乱后,我发现我使用的API干扰了构造函数。我通过将INSERT INTO代码放在我调用构造函数的相同位置来解决问题。

我仍然不完全确定发生了什么,但现在已经解决了。