c# - Datagridview 显示 system.windows.forms.richtextbox.text:使用 SQL
问题描述
我有一个Richtextbox
用户将更新数据的地方SQL database
。然后更新的数据将显示在 datagridview 中。但是,更新后的值将 system.windows.forms.richtextbox.text:
在更新数据的前面有一个,而不是更新数据本身。我已经阅读了诸如Link 1和Link 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;
}
解决方案
您正在隐式调用RichTextBox.ToString()
返回类名的方法。使用Text
属性
cmd = new SqlCommand("UPDATE Rtbdata SET Exterior='" + RichTextBox1.Text + "'", sqlConnection);
再看看参数化的sql命令,省事又方便。目前您的代码受到 sql 注入攻击。
推荐阅读
- c# - 使用 ClientWebSocket 类在 .net core 3.1 中实现 WebSocket 客户端
- node.js - 如何避免节点中的 readline 和 console.log 重叠
- bash - Sed 从文件中删除日志错误的实例,但前提是该文件不存在?
- python - Django 后端脚本调度
- php - 编写此逻辑的最简单方法
- javascript - Checking for a variable in a JSON
- laravel - Laravel 8.x:MOCK API 测试:错误:调用未定义的方法 App\Services\TrelloCardService::_downloadCardsFromBoard()
- c - 三元运算符中的赋值
- angular - 如何在离子表单上动态创建按钮
- javascript - 没有指定类时获取 div 的高度