从数据库向数据网格添加数据行

时间:2012-02-10 14:49:18

标签: 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.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将无法正常工作。我该怎么做?

提前致谢。

2 个答案:

答案 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数组添加到数据集或数据表中