数据库未更新,没有异常消息

时间:2019-07-16 07:40:37

标签: c# sql-server winforms

我找不到数据库表未更新的原因。下面是我的代码。

    private void button1_Click(object sender, EventArgs e)
    {
       try
        {
            SqlConnection sqlConnection = new SqlConnection();
            sqlConnection.ConnectionString = @"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\Transitionday.mdf;Integrated Security=True";
            sqlConnection.Open();
            SqlCommand cmd = new SqlCommand("UPDATE Transitionday SET Busnumber ='" + label1.Text + "', DT1check1 = '" + dataGridView1[1, 0].Value + "' where Id = '" + textBox4.Text + "'", sqlConnection);
            cmd.ExecuteNonQuery();
            sqlConnection.Close();
        }
        catch (Exception ex)
        {

            MessageBox.Show(ex.ToString());
        }

        this.Hide();
    }

1 个答案:

答案 0 :(得分:0)

数据库中的Id列类型是什么?因为您的脚本假设其值需要用引号引起来。

"' where Id = '" + textBox4.Text + "'"

翻译为

where Id = 'whatItyped'

如果您的ID列是字符串(varchar,nvarchar)或guid,那么这是正确的。如果您的Id列是整数,则不正确。

如果不正确,则where Id = 'whatItyped'将返回0个匹配,这意味着将更新0行。那不是错误,因此数据库或代码实际上并没有给您错误响应。

您需要使用脚本

where Id = 123

这意味着您的代码需要更改为

"' where Id = " + textBox4.Text

请注意,'个字符已删除。