当前位置:编程学习 > C#/ASP.NET >>

关于dataGridView中选中一行记录 并把这条记录内的每个字段的数据传到不同的textBox内

我现在已经查出数据并将其显示于dataGridView内 现在我选中一条记录 比如这条记录内有 学号 姓名 成绩 这三个字段 
我在dataGridView旁边放了三个TextBox
我想实现当我选中后 在那个三TextBox内分别显示 我选中那条记录的三个字段 学号 姓名 成绩的值

int index = this.dataGridView1.SelectedRows[0].Index;
DataTable table=(DataTable)this.dataGridView1.DataSource;
 if (index >= 0 && index < table.Rows.Count)
       {
           textBox2.Text = table.Rows[index]["学号"].ToString();
       }

  我是这样写的 但报错说 起出索引范围  也许是我的思路有错 请高手帮我看看那里错了 或者有其它写法

--------------------编程问答-------------------- 我这里有个这样的例子 --------------------编程问答-------------------- 这是由于没有选中当前行造成的,可以用CurrentRow
try.
if (this.dataGridView1.CurrentRow.Index > -1)
            {
                textBox2.Text   =   table.Rows[index][ "学号 "].ToString(); 
            }


一般我这样写,而不是直接找DataTable中的第几行,因为排序后可能对不上了
if (this.dataGridView1.CurrentRow.Index > -1)
            {
                DataRowView drv = (DataRowView)this.dataGridView1.CurrentRow.DataBoundItem;
                textBox2.Text = drv.Row["学号"].ToString();
            }
--------------------编程问答-------------------- int   index   = this.dataGridView1.CurrentRow.Index; --------------------编程问答-------------------- 写入代码:TextBox1.DataBindings.Add(相应表名.相应列名);
其他两个TextBox使用相同的方法即可。 --------------------编程问答-------------------- 2 楼 --------------------编程问答-------------------- private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
txtCName.Text = Convert.ToString(datagridview1[0, dataGridView1.CurrentCell.RowIndex].Value).Trim();
txtCName.Text = Convert.ToString(datagridview1[1, dataGridView1.CurrentCell.RowIndex].Value).Trim();
txtCName.Text = Convert.ToString(datagridview1[2, dataGridView1.CurrentCell.RowIndex].Value).Trim();
}

其中,0,1,2指的是第几列,从0开始算起 --------------------编程问答-------------------- 更正一哈,呵呵
private   void   dataGridView1_CellClick(object   sender,   DataGridViewCellEventArgs   e) 

textbox1.Text   =   Convert.ToString(datagridview1[0,   dataGridView1.CurrentCell.RowIndex].Value).Trim(); 
textbox2.Text   =   Convert.ToString(datagridview1[1,   dataGridView1.CurrentCell.RowIndex].Value).Trim(); 
textbox3.Text   =   Convert.ToString(datagridview1[2,   dataGridView1.CurrentCell.RowIndex].Value).Trim(); 

--------------------编程问答-------------------- 试试这个,应该可以实现你的需求:
textbox1.Text = datagridview1.Rows[datagridview1.CurrentCellAddress.Y].Cells["学号"].Value.ToString().Trim(); --------------------编程问答-------------------- 4樓說得不錯,我覺得DataBindings最好用
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,