C# 从数据库向datagrid添加数据行
我不熟悉数据库。我正在尝试创建一个搜索实用程序,将用户输入字符串与数据库中的记录相匹配并显示它们C# 从数据库向datagrid添加数据行,c#,.net,database,sql-server-2008,C#,.net,Database,Sql Server 2008,我不熟悉数据库。我正在尝试创建一个搜索实用程序,将用户输入字符串与数据库中的记录相匹配并显示它们 System.Data.SqlClient.SqlConnection con; System.Data.SqlClient.SqlDataAdapter da; DataSet ds1; private void Form1_Load(object sender, EventArgs e) { con = new System.Data.SqlClient.Sql
System.Data.SqlClient.SqlConnection con;
System.Data.SqlClient.SqlDataAdapter da;
DataSet ds1;
private void Form1_Load(object sender, EventArgs e)
{
con = new System.Data.SqlClient.SqlConnection();
ds1 = new DataSet();
con.ConnectionString = "";
con.Open();
string sql = "SELECT * From tblLecturers";
da = new System.Data.SqlClient.SqlDataAdapter(sql, con);
da.Fill(ds1, "Lecturers");
con.Close();
}
Form2 secondForm = new Form2();
private void btnFind_Click(object sender, EventArgs e)
{
this.Hide();
secondForm.Show();
string searchFor = textBox1.Text;
int results = 0;
int i;
DataRow[] returnedRows;
if (radioButton1.Checked)
{
returnedRows = ds1.Tables["Lecturers"].Select("Name like '%" + searchFor + "%'");
}
else
{
returnedRows = ds1.Tables["Lecturers"].Select("Department like '%" + searchFor + "%'");
}
results = returnedRows.Length;
if (results > 0)
{
secondForm.dataGridView1.DataSource = returnedRows;
}
else
{
MessageBox.Show("No such Record");
}
}
没有错误,但它只是显示一个空白网格。returnedRows包含内容与用户输入匹配的所有行。但我很确定这不是:
secondForm.dataGridView1.DataSource = returnedRows;
已尝试行。使用for循环添加,将不起作用。我该怎么做
提前感谢。调用gridView的BindMethod
if (results > 0)
{
secondForm.dataGridView1.DataSource = returnedRows;
secondForm.dataGridView1.DataBind();
}
else
{
MessageBox.Show("No such Record");
}
忽略数据绑定方法,没有适用于windows GridView的方法。
datarow数组可以添加到dataset或datatable,使用dataset或datatable我们可以直接绑定GridView您的代码在SQL注入方面有问题。您应该使用参数化查询,或者正确转义用户输入。我不确定是否遵循。你能说得更具体一点吗?想象一下,如果有人试图搜索
O'Reilly
,你的程序会怎么样。或者自己试试看。这个注释框太小,我无法深入了解所有细节,因此我建议您在编写更多代码之前研究SQL注入以及如何避免它。如果您将Linq用于选择方法,而不是参数化查询,那么这一切可能会更干净、更简单。您是否尝试调用secondForm.dataGridView1.Refresh()
以确保它重新绘制自身?表示dataGridView1没有扩展方法DataBind。顺便问一下,windows窗体应用程序是否需要数据绑定?0下一票忽略数据绑定方法,windows GridView没有方法。datarow数组可以添加到dataset或datatable中,使用dataset或datatable我们可以直接绑定GridViewI创建一个新的dataset,然后添加dataRows:dataset dt=new dataset();dt.合并(返回箭头);secondForm.dataGridView1.DataSource=returnedRows;不显示。这是一个注释而不是答案。看起来像是你之前在自己的答案上留下的评论。你可能应该继续删除这个。