C#如何使sql查询的两个表的结果分别显示到两个DateGridView中

tongtiqiong5956 2018-06-15 08:53:34
代码如下:
private void button1_Click(object sender, EventArgs e)
{
string sql;
//查询
sql = "select * from yuangong,peixun where 1=1";
if (txtID.Text.ToString().Trim() != "") //如果条件不为空,则依次添加所需条件
{
sql = sql + " and bh like '%" + txtID.Text.ToString().Trim() + "%'";
}
if (txtname.Text.ToString().Trim() != "")
{
sql = sql + " and xm like '%" + txtname.Text.ToString().Trim() + "%'";
}

sql = sql + " order by id desc";
getdata(sql); //调用自定义函数getdata,与上同理
}


private void getdata(string sql) //自定义函数getdata
{
DataSet misds = new DataSet();
misds = new Class1().misgetdata(sql);
if (misds != null)
{
//如果查询结果不为空,将结果显示在datagridview1中,绑定
dataGridView1.DataSource = misds.Tables[0];
}
dataGridView1.Columns[0].HeaderCell.Value = "序号";
dataGridView1.Columns[1].HeaderCell.Value = "编号";
dataGridView1.Columns[2].HeaderCell.Value = "姓名";

dataGridView1.Columns[3].HeaderCell.Value = "性别";
dataGridView1.Columns[4].HeaderCell.Value = "电话";
dataGridView1.Columns[5].HeaderCell.Value = "身份证";
dataGridView1.Columns[6].HeaderCell.Value = "邮箱";
dataGridView1.Columns[7].HeaderCell.Value = "岗位";
dataGridView1.Columns[8].HeaderCell.Value = "部门";
dataGridView1.Columns[9].HeaderCell.Value = "地址";
dataGridView1.Columns[10].HeaderCell.Value = "备注";
dataGridView1.Columns[11].HeaderCell.Value = "添加时间";
dataGridView1.Columns[12].HeaderCell.Value = "在职状态";
dataGridView1.Columns[13].HeaderCell.Value = "政治面貌";
dataGridView1.Columns[14].HeaderCell.Value = "职工类别";
dataGridView1.Columns[15].HeaderCell.Value = "籍贯";
dataGridView1.Columns[16].HeaderCell.Value = "出生日期";
}

private void dataGridView1_MouseClick(object sender, MouseEventArgs e)
{
//查询当前鼠标选中的行
string sql;
sql = "select * from yuangong where id=" + dataGridView1.CurrentRow.Cells[0].Value.ToString().Trim();

showdata(sql); //调用函数showdata
}
private void showdata(string sql) //自定义函数showdata
{
DataSet misds = new DataSet();
misds = new Class1().misgetdata(sql);
if (misds != null)
{
//如果查询结果不为空,给各个文本框赋值
bh.Text = misds.Tables[0].Rows[0]["bh"].ToString().Trim();
xm.Text = misds.Tables[0].Rows[0]["xm"].ToString().Trim();
tel.Text = misds.Tables[0].Rows[0]["tel"].ToString().Trim();
sfz.Text = misds.Tables[0].Rows[0]["sfz"].ToString().Trim();
email.Text = misds.Tables[0].Rows[0]["email"].ToString().Trim();
gw.Text = misds.Tables[0].Rows[0]["gw"].ToString().Trim();
addr.Text = misds.Tables[0].Rows[0]["addr"].ToString().Trim();
memo.Text = misds.Tables[0].Rows[0]["memo"].ToString().Trim();
gender.Text = misds.Tables[0].Rows[0]["gender"].ToString().Trim();
bm.Text = misds.Tables[0].Rows[0]["bm"].ToString().Trim();
zzmm.Text = misds.Tables[0].Rows[0]["zzmm"].ToString().Trim();
zglb.Text = misds.Tables[0].Rows[0]["zglb"].ToString().Trim();
jg.Text = misds.Tables[0].Rows[0]["jg"].ToString().Trim();
zhuangtai.Text = misds.Tables[0].Rows[0]["zhuangtai"].ToString().Trim();
birth.Value = DateTime.Parse(misds.Tables[0].Rows[0]["birth"].ToString().Trim());
}
}

private void Getdata(string sql) //自定义函数getdata
{
DataSet misds = new DataSet();
misds = new Class1().misgetdata(sql);
if (misds != null)
{
//如果查询结果不为空,将结果显示在datagridview1中,绑定
dataGridView2.DataSource = misds.Tables[0];
}
dataGridView2.Columns[0].HeaderCell.Value = "序号";
dataGridView2.Columns[1].HeaderCell.Value = "培训开始时间";
dataGridView2.Columns[2].HeaderCell.Value = "培训结束时间";
dataGridView2.Columns[3].HeaderCell.Value = "培训地点";
dataGridView2.Columns[4].HeaderCell.Value = "培训内容";

}
private void dataGridView2_MouseClick(object sender, MouseEventArgs e)
{

//查询当前鼠标选中的行
string sql;
sql = "select * from peixun1 where id=" + dataGridView2.CurrentRow.Cells[0].Value.ToString().Trim();

showdata(sql); //调用函数showdata
}
private void Showdata(string sql) //自定义函数showdata
{
DataSet misds = new DataSet();
misds = new Class1().misgetdata(sql);
if (misds != null)
{
//如果查询结果不为空,给各个文本框赋值

riqi1.Text = misds.Tables[0].Rows[0]["riqi1"].ToString().Trim();
riqi2.Text = misds.Tables[0].Rows[0]["riqi2"].ToString().Trim();
didian.Text = misds.Tables[0].Rows[0]["didian"].ToString().Trim();
nr.Text = misds.Tables[0].Rows[0]["nr"].ToString().Trim();

}
}

可是一运行就在 dataGridView1.Columns[0].HeaderCell.Value = "序号";显示引索超出范围,求各位解决一下
...全文
1165 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
luojie81 2018-06-19
  • 打赏
  • 举报
回复
            DataGridViewColumn cl = new DataGridViewColumn();
            cl.Name = "Id";
            cl.HeaderText = "序号";
            cl.CellTemplate = new DataGridViewTextBoxCell();
            dataGridView1.Columns.Add(cl);
qq_37753824 2018-06-16
  • 打赏
  • 举报
回复
别贴这么多代码,直接说详细点你要干嘛
泉水叮咚888 2018-06-16
  • 打赏
  • 举报
回复
显示引索超出范围,说明加载DataGRIDview后,没有做选限行的操作,加载数据后,直接若数据行数大于1默认选取第一行,就没问题啦。
tongtiqiong5956 2018-06-15
  • 打赏
  • 举报
回复
界面截图

110,545

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧