点击datagridview 索引超出范围。必须为非负值并小于集合大小。
我想通过点击datagridview中的一行然后读取到这行中的每一列的值但是弹出警告请问要如何修改?如果读取到值然后显示在文本框中我这样写是否正确?intid=Conve...
我想通过点击datagridview 中的一行 然后读取到 这行中的 每一列的值 但是弹出警告请问要如何修改?
如果读取到值然后显示在文本框中 我这样写是否正确 ?
int id = Convert.ToInt32(dgvTicketInfo.SelectedRows[0].Cells["ID"].Value);
//string leavecity = Convert.ToString(dgvTicketInfo.SelectedRows[0].Cells["LeaveCity"].Value);
string sql = string.Format( "SELECT ID,FlightNO,LeaveCity,Destination,LeaveTime FROM Ticket WHERE ID ={0}",id);
SqlCommand command = new SqlCommand(sql, DBHelper.connection);
DBHelper.connection.Open();
SqlDataReader dataReader = command.ExecuteReader();
txtFrom.Text = (string) dataReader["LeaveCity"];
txtTo.Text = (string)dataReader["Destination"];
... ... 展开
如果读取到值然后显示在文本框中 我这样写是否正确 ?
int id = Convert.ToInt32(dgvTicketInfo.SelectedRows[0].Cells["ID"].Value);
//string leavecity = Convert.ToString(dgvTicketInfo.SelectedRows[0].Cells["LeaveCity"].Value);
string sql = string.Format( "SELECT ID,FlightNO,LeaveCity,Destination,LeaveTime FROM Ticket WHERE ID ={0}",id);
SqlCommand command = new SqlCommand(sql, DBHelper.connection);
DBHelper.connection.Open();
SqlDataReader dataReader = command.ExecuteReader();
txtFrom.Text = (string) dataReader["LeaveCity"];
txtTo.Text = (string)dataReader["Destination"];
... ... 展开
3个回答
展开全部
你报的错应该是:
dgvTicketInfo.SelectedRows[0].Cells["ID"].Value
报的!
因为dgvTicketInfo.SelectedRows的默认selectionMode是 RowHeaderSelect,如果你点击行中某一个单元格,是选不到整行的!
所以dgvTicketInfo.SelectedRows.Count实际上是零。你的那句话:
dgvTicketInfo.SelectedRows[0] 肯定要报索引超出范围了!
可以把selectionMode设成 整行选择!
当然也可以改进你的定位行和单元格的方式!比如通过当前单元格的行列下标,定位你的“ID”也可以!
dgvTicketInfo.SelectedRows[0].Cells["ID"].Value
报的!
因为dgvTicketInfo.SelectedRows的默认selectionMode是 RowHeaderSelect,如果你点击行中某一个单元格,是选不到整行的!
所以dgvTicketInfo.SelectedRows.Count实际上是零。你的那句话:
dgvTicketInfo.SelectedRows[0] 肯定要报索引超出范围了!
可以把selectionMode设成 整行选择!
当然也可以改进你的定位行和单元格的方式!比如通过当前单元格的行列下标,定位你的“ID”也可以!
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
if(dataReader,next())
{
//.........................
}
{
//.........................
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
if (dataReader.Read()){
txtFrom.Text = (string) dataReader["LeaveCity"];
txtTo.Text = (string)dataReader["Destination"];
.....
}
txtFrom.Text = (string) dataReader["LeaveCity"];
txtTo.Text = (string)dataReader["Destination"];
.....
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询