SqliteException:SQLite错误提供给命令的参数不足

时间:2019-02-16 10:10:23

标签: sqlite

我有下表:

enter image description here

以下代码:

for (int i = 0; i < lines.Length; i = i + 6)
    {
        print(lines[i]);
        print(lines[i + 1]);
        print(lines[i + 2]);
        print(lines[i + 3]);
        print(lines[i + 4]);
        print(lines[i + 5]);
        print("+++++++++++++++++++++");

        if (lines[i] == "99999") break;


        IDbCommand dbcmd = dbconn.CreateCommand();                                                  //creates command on connection

        string sqlInsert = "INSERT INTO questions (lvl, question, answer1, answer2, answer3, answer4, regdate, nrqasked, timebased, language) VALUES (@lvl, @question, @answer1, @answer2, @answer3, @answer4, @regdate, @nrqasked, @timebased, @language);";   // creates insert statement on sql insert string

        SqliteCommand command = new SqliteCommand();                                //creates new sqlite command
        //dbcmd.Parameters.Add(new SqliteParameter("@id", idNr));
        idNr++; ;
        intNr = int.Parse(lines[i + 1]);
        dbcmd.Parameters.Add(new SqliteParameter("@lvi", lines[i + 1]));
        dbcmd.Parameters.Add(new SqliteParameter("@question", lines[i + 2]));
        dbcmd.Parameters.Add(new SqliteParameter("@answer1", lines[i + 3]));
        dbcmd.Parameters.Add(new SqliteParameter("@answer2", lines[i + 4]));
        dbcmd.Parameters.Add(new SqliteParameter("@answer3", lines[i + 5]));
        dbcmd.Parameters.Add(new SqliteParameter("@answer4", ""));
        string myDate = System.DateTime.Now.ToString("yyyy.MM.dd");
        dbcmd.Parameters.Add(new SqliteParameter("@regdate", myDate));
        dbcmd.Parameters.Add(new SqliteParameter("@nrqasked", 0));
        dbcmd.Parameters.Add(new SqliteParameter("@timebased", 0));
        dbcmd.Parameters.Add(new SqliteParameter("@language", "SE"));

        dbcmd.CommandText = sqlInsert;                                              // sets dbcmd.CommandText to be equal to the insert statement created above
        dbcmd.ExecuteNonQuery();
    }

我得到:

  

SqliteException:SQLite错误为命令提供的参数不足

由于我几乎没有使用过SQLite,所以无法弄清楚问题所在。我用Google搜索并测试了其他解决方案,但没有成功。

1 个答案:

答案 0 :(得分:1)

此行dbcmd.Parameters.Add(new SqliteParameter("@lvi", lines[i + 1]));中的错字。您是说@lvl吗?