我在SQLite中的更新查询未正确更新回数据库

时间:2020-06-02 19:39:20

标签: c# sqlite

我正在Visual Studio中制作一个表单,该表单能够访问数据库,用db的表填充数据表,在datagridview中显示数据表,在屏幕上填充可编辑字段,然后将这些字段的值传递回数据库到它们各自的列。我的问题发生在最后一步,因为我的更新功能似乎无法正常工作。我已经搜索过了,但是我不确定自己要去哪里。

            string query = "UPDATE Actors SET fname=@fName, lname=@lName, sex=@sex, age=@age, action=@action, comic=@comic, drama=@drama, ego=@ego, music=@music, starQual=@starQual, romance=@romance, sexApp=@sexApp, workEth=@workEth, popularity=@popularity WHERE Id=@Id";
            SQLiteConnection myConnection = new SQLiteConnection("Data Source=data.db");
            SQLiteCommand cmd = new SQLiteCommand(query, myConnection);
            myConnection.Open();

            cmd.Parameters.Add(new SQLiteParameter("@fname", enterfName.Text));
            cmd.Parameters.Add(new SQLiteParameter("@lname", enterlName.Text));
            cmd.Parameters.Add(new SQLiteParameter("@sex", enterSex.Text));
            cmd.Parameters.Add(new SQLiteParameter("@age", Convert.ToInt32(enterAge.Value)));
            cmd.Parameters.Add(new SQLiteParameter("@action", Convert.ToInt32(enterAction.Value)));
            cmd.Parameters.Add(new SQLiteParameter("@comic", Convert.ToInt32(enterComic.Value)));
            cmd.Parameters.Add(new SQLiteParameter("@drama", Convert.ToInt32(enterDrama.Value)));
            cmd.Parameters.Add(new SQLiteParameter("@ego", Convert.ToInt32(enterEgo.Value)));
            cmd.Parameters.Add(new SQLiteParameter("@music", Convert.ToInt32(enterMusic.Value)));
            cmd.Parameters.Add(new SQLiteParameter("@starQual", Convert.ToInt32(enterStarQual.Value)));
            cmd.Parameters.Add(new SQLiteParameter("@romance", Convert.ToInt32(enterRomance.Value)));
            cmd.Parameters.Add(new SQLiteParameter("@sexApp", Convert.ToInt32(enterSexApp.Value)));
            cmd.Parameters.Add(new SQLiteParameter("workEth", Convert.ToInt32(enterWorkEth.Value)));
            cmd.Parameters.Add(new SQLiteParameter("@popularity", Convert.ToInt32(enterPopularity.Value)));
            cmd.Parameters.Add(new SQLiteParameter("@Id", Convert.ToInt32(indexHold.Value)));
            cmd.ExecuteNonQuery();
            myConnection.Close();
            //Update gridview with the changes
            updateGridView();

1 个答案:

答案 0 :(得分:0)

您忘记了参数@

cmd.Parameters.Add(new SQLiteParameter("@workEth",Convert.ToInt32(enterWorkEth.Value)));