Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# SQL,更新,其中id,代码正确无错误,但未更新_C#_Sql_Update Statement - Fatal编程技术网

C# SQL,更新,其中id,代码正确无错误,但未更新

C# SQL,更新,其中id,代码正确无错误,但未更新,c#,sql,update-statement,C#,Sql,Update Statement,我有一个数据库 我喜欢使用文本框中的输入更新我的表“Personen”。 当我点击一个按钮时,它说它已更新。但当我查询数据库时,它不会更新 这是我的密码 private void button1_Click(object sender, EventArgs e) { string sqlIns = @"UPDATE Personen SET Voornaam=@VN, Tussenvoegsel=@TN, Achternaam=@AN WHERE (ID=@ID) ;";

我有一个数据库

我喜欢使用文本框中的输入更新我的表“Personen”。 当我点击一个按钮时,它说它已更新。但当我查询数据库时,它不会更新

这是我的密码

private void button1_Click(object sender, EventArgs e)
    {
        string sqlIns = @"UPDATE Personen SET Voornaam=@VN, Tussenvoegsel=@TN, Achternaam=@AN WHERE (ID=@ID) ;";

        //Maak commando object
        OleDbCommand command = new OleDbCommand(sqlIns, Connectie);
        command.Parameters.AddWithValue("@ID", Convert.ToInt32(TextBoxVerwijderen.Text));
        command.Parameters.AddWithValue("@VN", Convert.ToString(textBox1.Text));
        command.Parameters.AddWithValue("@TN", Convert.ToString(textBox2.Text));
        command.Parameters.AddWithValue("@AN", Convert.ToString(textBox3.Text));
        Connectie.Close();
        try
        {
            //Open de connectie
            Connectie.Open();
            //Voer commando uit
            command.ExecuteReader();
            Connectie.Close();
            //Meldingen succes op het scherm
            LabelSucces.Text = "Persoon is succesvol Geupdate " + sqlIns;
        }
        catch (OleDbException ex)
        {
            MessageBox.Show(ex.Message + ex.StackTrace, "Exception details");
        }
        finally
        {
            //Sluiten van de connectie
            Connectie.Close();
        }
    }
你好。 Alex使用
命令。ExecuteNonQuery()
代替
命令.ExecuteReader()

使用这样的查询

    command.Parameters.AddWithValue("ID", Convert.ToInt32(TextBoxVerwijderen.Text));
    command.Parameters.AddWithValue("VN", Convert.ToString(textBox1.Text));
    command.Parameters.AddWithValue("TN", Convert.ToString(textBox2.Text));
    command.Parameters.AddWithValue("AN", Convert.ToString(textBox3.Text));

看来这就是问题所在。卸下它并尝试在开始时打开连接,在结束时关闭连接。不要在之间执行任何操作。

在连接字符串中传递什么?您是否遇到任何异常?OleDbConnection Connectie=new-OleDbConnection(@“Provider=Microsoft.ACE.OLEDB.12.0;数据源=C:\Users\Alex\Desktop\visual\u studio1\test.accdb;Persist Security Info=False”);这是工作100%,不,我没有任何例外。是的,它现在正在更新,我有一个问题,当我更新它,ID是去的地方Voornaam,而不是ID我想更新的新值。你也可以帮我吗?好的,那么接受这个答案,然后我也用新的方式更新了我的ans。如果你用这种方式工作,试着找出你的第一种方法有什么问题。我强烈反对只从文本框中获取字符串,您可以查找SQL注入。从这个意义上讲,原始的基于参数的方法要好得多。请尝试检查ID参数,可能您传递的值不正确,还可以检查count
ExecuteNonQuery()
返回的值是否满足(ID=@ID)的要求?
Connectie.Close();