private void button1_Click(object sender, EventArgs e) //这里是不用泛型集合的情况,用的是Datatable { SqlConnection conn = new SqlConnection("server=.;database=Cml;user=sa;pwd=123"); SqlCommand cmd = conn.CreateCommand(); cmd.CommandText = "select * from student"; conn.Open(); SqlDataReader dr= cmd.ExecuteReader(); DataTable dt = new DataTable(); if(dr.HasRows) { //开始添加列 for (int i = 0; i < dr.FieldCount; i++) //dr.FieldCount 表里的列数 { dt.Columns.Add(dr.GetName(i)); //一列一列的添加,for 循环循环的是确定了某一行之后每一列 } //开始添加行 while (dr.Read()) //while循环的是每一行的数据,一行一行的循环 { DataRow dtw = dt.NewRow(); //造一个新行 //下面开始给新行添加内容 for (int i = 0; i < dr.FieldCount; i++) { dtw[i] = dr[i]; //开始给确定了某一行的每一列依次赋值,for循环循环一次赋一次列值 } //将while循环完事后的每一行的内容全部增加到dt里面 dt.Rows.Add(dtw); } } //现在Datatable里面已经有内容了,然后datagridview1的数据源便是dt dataGridView1.DataSource = dt; cmd.Dispose(); conn.Close(); }
/////////
private void button2_Click(object sender, EventArgs e) //cells 单元格 { if(dataGridView1.SelectedCells.Count>0) { MessageBox.Show(dataGridView1.SelectedCells[0].Value.ToString()); //SelectedCells[0] 中括号里面是0的话,必须得选择至少1个单元格,显示倒数第一个选中的 //SelectedCells[1] 中括号里面是1的话,必须得选择至少2个单元格,显示倒数第二个选中的 //SelectedCells[2] 中括号里面是2的话,必须得选择至少3个单元格,显示倒数第三个选中的 } }
////
private void button2_Click(object sender, EventArgs e) //cells 单元格 { if(dataGridView1.SelectedCells.Count>0) { MessageBox.Show(dataGridView1.SelectedCells[1].Value.ToString()); //SelectedCells[0] 中括号里面是0的话,必须得选择至少1个单元格,显示倒数第一个选中的 //SelectedCells[1] 中括号里面是1的话,必须得选择至少2个单元格,显示倒数第二个选中的 //SelectedCells[2] 中括号里面是2的话,必须得选择至少3个单元格,显示倒数第三个选中的 } } 这里是先选中的康议方,在选中的侯玉芳
////
private void button2_Click(object sender, EventArgs e) //cells 单元格 { if(dataGridView1.SelectedCells.Count>0) { MessageBox.Show(dataGridView1.SelectedCells[2].Value.ToString()); //SelectedCells[0] 中括号里面是0的话,必须得选择至少1个单元格,显示倒数第一个选中的 //SelectedCells[1] 中括号里面是1的话,必须得选择至少2个单元格,显示倒数第二个选中的 //SelectedCells[2] 中括号里面是2的话,必须得选择至少3个单元格,显示倒数第三个选中的 } }
//////
//Selectionmode 指示如何选中单元格 fullrowselect再选中其第一项时,其子项也会突出显示 private void button3_Click(object sender, EventArgs e) //row 在使用这个的时候,必须将Selectionmode改为fullrowselect { MessageBox.Show(dataGridView1.SelectedRows[0].Cells[0].Value.ToString()); //SelectedRows[0] 必须选择最少1行 ,显示倒数第一个选中的 cells[0] 为这一行的第一列的值 //SelectedRows[1] 必须选中最少2行 ,显示倒数第二个选中的 cells[1] 为这一行的第二列的值 }
////
//Selectionmode 指示如何选中单元格 fullrowselect再选中其第一项时,其子项也会突出显示 private void button3_Click(object sender, EventArgs e) //row 在使用这个的时候,必须将Selectionmode改为fullrowselect { MessageBox.Show(dataGridView1.SelectedRows[0].Cells[1].Value.ToString()); //SelectedRows[0] 必须选择最少1行 ,显示倒数第一个选中的 cells[0] 为这一行的第一列的值 //SelectedRows[1] 必须选中最少2行 ,显示倒数第二个选中的 cells[1] 为这一行的第二列的值 }
private void button3_Click(object sender, EventArgs e) //row 在使用这个的时候,必须将Selectionmode改为fullrowselect { MessageBox.Show(dataGridView1.SelectedRows[1].Cells[0].Value.ToString()); //SelectedRows[0] 必须选择最少1行 ,显示倒数第一个选中的 cells[0] 为这一行的第一列的值 //SelectedRows[1] 必须选中最少2行 ,显示倒数第二个选中的 cells[1] 为这一行的第二列的值 }
/////
private void button4_Click(object sender, EventArgs e) //将选中的某行转换为该行所对应的对象 { //bianliang x=(bianliang)dataGridView1.SelectedRows[0].DataBoundItem; //将选中的某一行直接转化为对象,之后可以调用对象的任意属性 }