本實驗目标是通過本案例您将學習了解到:
nDataGridView的資料綁定技術;
nDataGridView的更新和删除技術。
使用者界面如圖4-60所示:
圖4-60 DataGridview基本的資料操作應用程式界面圖
u實驗步驟(1):
在VS.NET 2005中建立一個名為示例4的基于Windows的項目。将預設窗體重命名為form9.cs。
u實驗步驟(2):
從工具箱之中拖拽一個dataGridView控件到Form窗體,ColumnHeadersHeightSizeMode屬性設定為“AutoSize”;另外還要向Form窗體下側添加二個Button控件,text屬性分别設定為“更改”、“删除”。
u實驗步驟(3):
資料庫的設計參見圖4-61:
圖4-61 資料庫設計圖
資料庫為school,共有六個表,該應用程式中隻使用了表student。具體字段設計情況請參見圖4-79。資料表student中可以先存放一部分資料,便于後面處理。資料庫環境是SQL Server 2005。
u實驗步驟(4):
用滑鼠輕按兩下所有Button控件,進入.cs檔案編輯狀态準備進行開發。代碼加下:
//==========動态程式設計部分================
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace WindowsApplication1
{
public partial class Form9 : Form
{
private SqlConnection mycon;
private SqlDataAdapter myada;
private SqlCommand mycomd;
private SqlCommandBuilder mycbd;
private DataSet myset;
public Form9()
{
InitializeComponent();
mycon = new SqlConnection("Data Source=LKJ\\SQLEXPRESS;Initial Catalog=school;Integrated Security=True");
mycomd = new SqlCommand("select * from student",mycon);
myada = new SqlDataAdapter();
myada.SelectCommand = mycomd;
mycbd = new SqlCommandBuilder(myada);
myset = new DataSet();
myada.TableMappings.Add("student","student");
myada.TableMappings[0].ColumnMappings.Add("SNO", "學号");
myada.TableMappings[0].ColumnMappings.Add("SNAME", "姓名");
myada.TableMappings[0].ColumnMappings.Add("SEX", "性别");
myada.TableMappings[0].ColumnMappings.Add("BIRTHDAY", "生日");
myada.TableMappings[0].ColumnMappings.Add("CLASS", "班級");
}
/// <summary>
/// 資料修改
/// </summary>
private void button1_Click(object sender, EventArgs e)
try
{
//将更改的資料更新到資料表裡
myada.Update(myset.Tables["student"].GetChanges());
MessageBox.Show("資料庫修改成功","成功資訊");
//DataTable接受更改,以便為下一次更改作準備
myset.Tables["student"].AcceptChanges();
}
catch (SqlException ex)
MessageBox.Show(ex.ToString());
/// 初始化資料
private void Form9_Load(object sender, EventArgs e)
myada.Fill(myset, "student");
finally
mycon.Close();
dataGridView1.DataSource = myset.Tables["student"].DefaultView;
/// 資料删除
private void button2_Click(object sender, EventArgs e)
if (MessageBox.Show("确定要删除目前行資料?", "", MessageBoxButtons.OKCancel) == DialogResult.OK)
try
{
//從DataTable中删除目前選中的行
myset.Tables[0].Rows[dataGridView1.CurrentRow.Index].Delete();
//将更改的資料更新到資料表裡
myada.Update(myset.Tables[0].GetChanges());
MessageBox.Show("資料删除成功!");
//DataTable接受更改,以便為下一次更改作準備
myset.Tables[0].AcceptChanges();
}
catch (SqlException ex)
MessageBox.Show(ex.ToString());
else
//取消對DataTable的更改
myset.Tables[0].RejectChanges();
}
}
本文轉自 qianshao 51CTO部落格,原文連結:http://blog.51cto.com/qianshao/216108,如需轉載請自行聯系原作者