C# 选择单击按钮的DataGridView行
基本上,我的问题是我的代码似乎跳过了我的foreach循环,我的目标是从同一行中单击按钮获得行值,到目前为止,这是我的代码:C# 选择单击按钮的DataGridView行,c#,winforms,gridview,C#,Winforms,Gridview,基本上,我的问题是我的代码似乎跳过了我的foreach循环,我的目标是从同一行中单击按钮获得行值,到目前为止,这是我的代码: private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) { var senderGrid = (DataGridView)sender; if (senderGrid.Columns[e.ColumnIndex] is DataGrid
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
var senderGrid = (DataGridView)sender;
if (senderGrid.Columns[e.ColumnIndex] is DataGridViewButtonColumn &&
e.RowIndex >= 0)
{
string userID;
string Monday;
string Tuesday;
string Wednesday;
string Thursday;
string Friday;
foreach (DataGridViewRow row in dataGridView1.SelectedRows)
{
userID = row.Cells[0].Value.ToString();
Monday = row.Cells[1].Value.ToString();
Tuesday = row.Cells[2].Value.ToString();
Wednesday = row.Cells[3].Value.ToString();
Thursday = row.Cells[4].Value.ToString();
Friday = row.Cells[5].Value.ToString();
dbHandler objDBHandler = new dbHandler();
objDBHandler.writeDB("INSERT INTO [OfficeCalendar].[dbo].[DayData]([UserID],[Monday],[Tuesday],[Wednesday],[Thursday],[Friday]) VALUES ('" + userID + "','" + Monday + "','" + Tuesday + "','" + Wednesday + "','" + Thursday + "','" + Friday + "');", "byron");
}
}
}
我改变了自己的问题 将DataGridView的SelectionMode设置为FullRowSelect
MethodMan的道具感谢您的评论,它帮助了很多除非您允许用户一次选择多行,否则无需循环浏览它们。CellContentClick事件的DataGridViewCellEventArgs参数对象已经为您提供了单击的行号
string userID;
string Monday;
string Tuesday;
string Wednesday;
string Thursday;
string Friday;
DataGridViewRow row = dataGridView1.Rows[e.RowIndex];
userID = row.Cells[0].Value.ToString();
Monday = row.Cells[1].Value.ToString();
Tuesday = row.Cells[2].Value.ToString();
Wednesday = row.Cells[3].Value.ToString();
Thursday = row.Cells[4].Value.ToString();
Friday = row.Cells[5].Value.ToString();
dbHandler objDBHandler = new dbHandler();
objDBHandler.writeDB("INSERT INTO [OfficeCalendar].[dbo].[DayData]([UserID],[Monday],[Tuesday],[Wednesday],[Thursday],[Friday]) VALUES ('" + userID + "','" + Monday + "','" + Tuesday + "','" + Wednesday + "','" + Thursday + "','" + Friday + "');", "byron");
此外,在主题之外,您的代码会提示SQL注入;使用参数化查询而不是字符串连接。将DataGridView的SelectionMode更改为FullRowSelectDon call a DataGridView a GridView!!这是错误的,令人困惑的,肯定会得到错误的答案,浪费大家的时间。。总是用正确的名字来称呼事物!是的,要多打四个字母,但在这里寻求帮助的时候可不是这么懒的时候另外:您是否选择了任何行?