【发布时间】:2021-02-26 12:39:30
【问题描述】:
我在将数据从 Form1 上的 textbox1 传递到 Form2 上的 DataGridView 时遇到问题。
Form1 有一个文本框,一旦他们输入查询,它就会打开 Form2 并在 Form2 上的 DataGridView 中搜索查询。
但是,我在将文本从 Form1 上的 TextBox1 传递到 Form2 上的 DataGridView SQL SELECT QUERY 时遇到问题。
我已经尝试过:
检查 SQL 查询的问题 - 如果我手动键入它,这工作正常。
正在将 Form1 上的 TextBox1 传递给 Form2 - 在 Form2 上的随机标签上进行检查以检查它是否被传递。
TextBox1 和 DataGrid 都是公共的。
我的 DataGrid 代码是:
Form1 form1con = new Form1();
SqlConnection cn = new SqlConnection(Settings.Default.database);
cn.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = cn;
cmd.CommandText = "SELECT * FROM table WHERE row LIKE '%" + Form1.TextBox1.Text + "%'";
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);
AddressListDataGridView.DataSource = ds.Tables[0];
cn.Close();
是的,我知道 SQL 注入 - 目前我并不担心,因为我有更多的工作和调试,所以我稍后会处理这个问题。
【问题讨论】:
-
将搜索词传递给另一个表单并让它填充“数据网格”会更简单。如果您不知道如何在一个应用程序中使用 2 个表单,请考虑使用选项卡控件。您还可以启动您最喜欢的搜索引擎并研究这里已经存在的数千个关于将数据传递到另一个表单的问题
-
Form1.TextBox1是否声明为static?如果不是,则此代码不完整或无法编译。请发布一个可复制的示例。 -
TextBox1 中的数据正在传递给 Form2,但出于某种原因,DataGrid SQL 不接受它并显示表中的所有行,而不仅仅是 TextBox1 中的特定行。
标签: c# sql datagridview