首页 > 解决方案 > Datagridview 显示 system.windows.forms.richtextbox.text:使用 SQL

问题描述

我有一个Richtextbox用户将更新数据的地方SQL database。然后更新的数据将显示在 datagridview 中。但是,更新后的值将 system.windows.forms.richtextbox.text:在更新数据的前面有一个,而不是更新数据本身。我已经阅读了诸如Link 1Link 2之类的线程,但我不确定如何在我的情况下实现它。下面是我的代码:

更新数据 - 表格 1

private void button1_Click(object sender, EventArgs e)
    {
        sqlConnection.ConnectionString = @"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\Savertb.mdf;Integrated Security=True";
        sqlConnection.Open();
        cmd = new SqlCommand("UPDATE Rtbdata SET Exterior='" + RichTextBox1 + "'", sqlConnection);
        cmd.ExecuteNonQuery();
        sqlConnection.Close();
        this.Hide();
      }

在 datagridview 中插入更新的数据 - 表格 2

private void button2_Click(object sender, EventArgs e)
    {
        sqlConnection.ConnectionString = @"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\Savertb.mdf;Integrated Security=True";
        sqlConnection.Open();
        SqlDataAdapter da = new SqlDataAdapter("SELECT * from Rtbdata", sqlConnection);
        sqlConnection.Close();
        SqlCommandBuilder cb = new SqlCommandBuilder(da);
        DataTable dt = new DataTable();
        da.Fill(dt);
        dataGridView1.DataSource = dt;
        dataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells;
    }

标签: c#sqlwinformsdatagridview

解决方案


您正在隐式调用RichTextBox.ToString()返回类名的方法。使用Text属性

    cmd = new SqlCommand("UPDATE Rtbdata SET Exterior='" + RichTextBox1.Text + "'", sqlConnection);

再看看参数化的sql命令,省事又方便。目前您的代码受到 sql 注入攻击。


推荐阅读