我是数据库的新手。我正在尝试创建一个搜索实用程序,将用户输入字符串与数据库中的记录进行匹配并显示它们。
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循环尝试rows.add将无法正常工作。我该怎么做?
提前致谢。
答案 0 :(得分:0)
调用gridView的BindMethod
if (results > 0)
{
secondForm.dataGridView1.DataSource = returnedRows;
secondForm.dataGridView1.DataBind();
}
else
{
MessageBox.Show("No such Record");
}
答案 1 :(得分:0)
忽略DataBind方法,Windows GridView没有方法。 可以使用我们可以直接绑定GridView的数据集或数据表将datarow数组添加到数据集或数据表中