一、每條數據增加一個按鈕,點擊輸出對應實體
請先確保正確添加實體的名稱和文本:
private void button6_Click(object sender, EventArgs e)
{//SQL查詢到數據,存于list中List<InforMessage> list = bll.QueryInforMessage();//含有字段:Title PublishTime UserName Content// 清空現有數據dataGridView1.Rows.Clear();//添加數據foreach (var item in list){//綁定數據,注意你的不一定是dataGridView1int rowIndex = dataGridView1.Rows.Add();dataGridView1.Rows[rowIndex].Cells["Title"].Value = item.Title;dataGridView1.Rows[rowIndex].Cells["PublishTime"].Value = item.PublishTime;dataGridView1.Rows[rowIndex].Cells["UserName"].Value = item.UserName;dataGridView1.Rows[rowIndex].Cells["Content"].Value = "點擊查看";//按鈕名稱// 將數據實體關聯到行的 Tag 屬性上以便后續處理dataGridView1.Rows[rowIndex].Tag = item;}
}// 在 DataGridView 的 CellContentClick (點擊某一單元格)事件中處理內容按鈕點擊事件
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{if (e.ColumnIndex == dataGridView1.Columns["Content"].Index && e.RowIndex >= 0)//若點擊了標簽為【Content】列的按鈕{// 獲取當前行對應的實體對象【注意修改此處InforMessage類】var item = dataGridView1.Rows[e.RowIndex].Tag as InforMessage;//將list實體中的content展示出來if (item != null){MessageBox.Show(item.Content, "內容詳情");}}
}
?二、輸出選中的實體信息
【代碼如下】
private void Form1_Load(object sender, EventArgs e){//sql查表List<Student> list = bll.QueryStudent();// 清空現有數據dataGridView1.Rows.Clear();//添加數據foreach (var item in list){int rowIndex = dataGridView1.Rows.Add();dataGridView1.Rows[rowIndex].Cells["ID"].Value = item.ID;dataGridView1.Rows[rowIndex].Cells["Name"].Value = item.Name;dataGridView1.Rows[rowIndex].Tag = item;}}private void button1_Click(object sender, EventArgs e)//點擊觸發{//獲取選中的實體(在窗體上定義好了)var result = selectedStudent;}private void dataGridView1_SelectionChanged(object sender, EventArgs e)//選中觸發{if (dataGridView1.SelectedRows.Count > 0){DataGridViewRow selectedRow = dataGridView1.SelectedRows[0];selectedStudent = (Student)selectedRow.Tag;//獲取選中的實體}else{selectedStudent = null;}}
?三、小結
1.增:? 建議用textbox、combobox等工具增,而不是直接datagridview新增,一來麻煩,二來輸入工具不能多樣化。
2.刪:建議如標題一,每條數據加一個刪除按鈕,方便操作
3.改:建議如標題二,選中某條數據然后將數據信息轉移到textbox上,label顯示“您已選中xxx數據”,然后點擊button去修改相應信息(選中數據和點擊按鈕都能獲取到對應實體)
4.查:同第2條
5.如果單純用datagridview作增刪查改,雖然能實現,但是代碼復雜難以維護,而且輸入條件單一,容易操作失誤,不建議這么做。