数据库里面的数据我已经获取到了,就差在怎么在datagridview里面查找数据了
SqlConnection con = new SqlConnection(Tools.con);
SqlDataAdapter cmd = new SqlDataAdapter(cmdStr, con);
DataSet ys = new DataSet();
cmd.Fill(ys, "Student");
dataGridView1.DataSource = ys.Tables["Student"];
以下是我做的程序界面,可以看看。希望朋友们给我一个核心代码,怎么在datagridview里面查询并显示到那一行。
butnSearch.
//在butnSearch中的Click事件中添加如下代码 private void butnSearch_Click(object sender, EventArgs e)
{
//连接数据库
SqlConnection con = new SqlConnection(Tools.con);//设置sql语句,按学号姓名查询。
cmdStr="select * from Student where Name='"+TextName.Text+"' or Num='"+TextNum.Text+"'";
//读取符合条件的记录
SqlDataAdapter cmd = new SqlDataAdapter(cmdStr, con);
//记录放入DataSet对象中
DataSet ys = new DataSet();
cmd.Fill(ys);//datagridview 显示 DataSet对象中的表
dataGridView1.DataSource = ys.Tables[0];
}
DataTable.DefaultViewBindingSource.Filter
BindingSource.SortDataTable.Select(string.Format("name={0}",textBox1.Text));
再设置DataGridView.CurrentCell
先整两个静态的
public static int RowCount = 0;
public static int SetGetRow
{
set
{
if (RowCount != value) { RowCount = value; }
}
get { return RowCount; }
}
然后再查找按钮的点击事件里面写这个
int row = dataGridView1.Rows.Count;//得到总行数
int cell = dataGridView1.Rows[1].Cells.Count;//得到总列数
for (int i = Tools.SetGetRow; i < row; i++)//得到总行数并在之内循环
{
for (int j = 0; j < cell; j++)//得到总列数并在之内循环
{
//精确查找定位
if (txtName.Text.Trim() == dataGridView1.Rows[i].Cells[j].Value.ToString().Trim() || txtStuId.Text.Trim() == dataGridView1.Rows[i].Cells[j].Value.ToString().Trim())
{
//对比TexBox中的值是否与dataGridView中的值相同(上面这句)
dataGridView1.CurrentCell = dataGridView1[j, i];//定位到相同的单元格
dataGridView1.Rows[i].Selected = true;//定位到行
Tools.SetGetRow = i + 1; return;//返回
}
}
}