当我在 DataGridView 中单击搜索数据按钮时,它会在 DataGridView 中添加我想要搜索的内容
Posted
技术标签:
【中文标题】当我在 DataGridView 中单击搜索数据按钮时,它会在 DataGridView 中添加我想要搜索的内容【英文标题】:When I Click Button For Search Data in DataGridView, It Adds What I Want to Search in DataGridView 【发布时间】:2021-04-25 02:47:53 【问题描述】:就像我在标题中所说的,
代码:
private void mtrTile_Search_Click(object sender, EventArgs e)
if (
txtBox_TeacherName.TextLength == 0 |
txtBox_TeacherSurname.TextLength == 0
)
MessageBox.Show(
this,
"Lütfen Bütün Kutuları Doldurunuz!",
"UYARI!",
MessageBoxButtons.OK,
MessageBoxIcon.Warning
);
else
try
con.Open();
SqlDataAdapter sda = new SqlDataAdapter("SELECT TeacherName AS [Öğretmenin Adı], TeacherSurname AS [Öğretmenin Soyadı] FROM Teachers WHERE(TeacherName LIKE '" + txtBox_TeacherName.Text + "')AND (TeacherSurname LIKE '" + txtBox_TeacherSurname.Text + "')", con);
sda.Fill(ds);
DGV_Teachers.DataSource = ds.Tables[0];
con.Close();
catch (Exception err)
con.Close();
MessageBox.Show(
err.ToString(),
"HATA!",
MessageBoxButtons.OK,
MessageBoxIcon.Error
);
通常这样
点击按钮五次后
【问题讨论】:
提供您的完整源代码,您可能在 aspx 文件中的其他位置添加了一些内容,或者可能正在调用您的添加功能而不是搜索功能。 @anilshrestha 我没有使用 asp.net,我提供了完整的源代码 您能否提供调用此方法的来源:void mtrTile_Search_Click(object sender, EventArgs e)?或者请提供前端部分以供搜索(如果有)。 @anilshrestha 当我单击按钮时调用此方法 完成后它会调用任何其他方法吗?我建议您保留所有源代码,以便尽快解决问题。您正在延长求解时间。 【参考方案1】:在开始连接之前,尝试使用:
DataSet ds = new DataSet();
或者,
DGV_Teachers.DataSource = null;
DGV_Teachers.DataBind();
或者,
DGV_Teachers.Rows.Clear();
DGV_Teachers.Refresh();
或者,
dt.Rows.Clear();
【讨论】:
第一个不起作用,但第二个给我一个错误,错误说“无法清除此列表” 对第一个进行了一些更改并添加了第三个。请参考这可能会解决。 visual studio 对 DGV_Teachers.DataBind() 说“‘DataGridView’不包含‘DataBind’的定义”;【参考方案2】:您是如何定义 DataSet ds
的?您是否将其声明为全局变量?尝试在方法中声明为局部变量。
这是我的测试代码,一切正常。
private void Form1_Load(object sender, EventArgs e)
using (SqlConnection conn = new SqlConnection(@"connection string"))
SqlDataAdapter sda = new SqlDataAdapter("Select * From Movie", conn);
DataSet ds = new DataSet();
sda.Fill(ds, "t1");
this.dataGridView1.DataSource = ds.Tables["t1"];
private void btnSearch_Click(object sender, EventArgs e)
using (SqlConnection conn = new SqlConnection(@"connection string"))
SqlDataAdapter sda = new SqlDataAdapter("Select* From Movie Where Title=@Title", conn);
sda.SelectCommand.Parameters.AddWithValue("@Title", textBox1.Text);
DataSet ds = new DataSet();
sda.Fill(ds);
dataGridView1.DataSource = ds.Tables[0];
【讨论】:
我终于修复了错误,错误的原因实际上是如果我将数据集设置为全局,它会添加我想要搜索的 datagridview 的行以上是关于当我在 DataGridView 中单击搜索数据按钮时,它会在 DataGridView 中添加我想要搜索的内容的主要内容,如果未能解决你的问题,请参考以下文章
VB.NET 无法更新 datagridview 中的 SQL 数据