果然,在犯困的時候就該寫寫博客,寫博客就不困了,哈哈! 上篇我記錄了自己的SqlHelper的開發過程,今天記錄一下如何使用這個sqlhelper書寫一個具有簡單增刪改查的小實例啦。 實例描述:在資料庫新建一張TbClass表,將表的內容讀取到一個DataGridView上,並且可以在winform ...
果然,在犯困的時候就該寫寫博客,寫博客就不困了,哈哈!
上篇我記錄了自己的SqlHelper的開發過程,今天記錄一下如何使用這個sqlhelper書寫一個具有簡單增刪改查的小實例啦。
實例描述:在資料庫新建一張TbClass表,將表的內容讀取到一個DataGridView上,並且可以在winform面板上對錶里的內容進行增、刪、改的操作。首先給出winform的設計:
下麵開始寫步驟咯,哈哈:
第一步:搭建該winform框架:
按圖所示分別對其屬性進行一些修改,搭建完成後為:
第二步:編寫代碼:
1.數據表介紹
首先看看我的資料庫長啥樣的:
tClassId為主鍵自增,不能為空,tClassName為nvarchar,非空 ,tClassDesc為nVarchar,可以為空。
然後確定查詢語句,為:select * from TbClass;
2.添加SqlHelper,編寫數據載入方法
首先,創建LoadData()方法,然後在Form1_Load()方法中調用LoadData方法;
LoadData方法書寫如下:
1 public void LoadData() 2 { 3 //聲明一個list集合 4 List<TbClass> list = new List<TbClass>(); 5 //書寫sql語句 6 string sql = "select * from TbClass"; 7 //調SqlHelper實現查詢 8 SqlDataReader reader = SqlHelper.ExecuteReader(sql); 9 if (reader.HasRows) 10 { 11 while (reader.Read()) 12 { 13 //創建資料庫對象tbClass 14 TbClass tbClass = new TbClass(); 15 tbClass.tClassId = reader.GetInt32(0); 16 tbClass.tClassName = reader.GetString(1); 17 tbClass.tClassDesc = reader.IsDBNull(2) ? null : reader.GetString(2); //數據表中該欄位是允許為空的,故這裡做出判斷,為空則使該值為null, 18 list.Add(tbClass); 19 } 20 } 21 //將list數據綁定到dataGridView上 22 this.dataGridView1.DataSource = list; 23 }
在使用SqlHelper之前,需要在App.config中添加配置代碼和在項目中添加引用,這是需要註意的,因為在以前的博客中有詳細講解如何添加,這裡不再講了哈。
下麵看一下讀取數據後的結果:
3.完成添加班級的功能
添加功能主要是向資料庫中插入一條記錄,首先寫出sql語句:
sql = “insert into TbClass (tClassName,tClassDesc) Values('高5班','文科班') ”;
因為這裡需要使用傳遞參數的sql語句,所以上面的語句寫為:
sql = "insert into TbClass (tClassName,tClassDesc) Values(@classname,@classdesc)"
然後我們在winform上雙擊 “添加"按鈕,進入相關方法體邊界方法:
看代碼:
1 private void button1_Click(object sender, EventArgs e) 2 { 3 //1.執行插入操作 4 bool row = InsertClass(); 5 if (row) 6 { 7 //2.插入成功,重新載入數據 8 MessageBox.Show("添加了" + 1 +"班級"); 9 LoadData(); 10 } 11 else 12 { 13 //插入失敗 14 } 15 16 } 17 18 /// <summary> 19 /// 執行向資料庫中插入添加的班級的操作 20 /// </summary> 21 /// <returns> 返回布爾類型結果,成功返回true,否則false</returns> 22 private Boolean InsertClass() 23 { 24 //1.獲取輸入值 25 string className = txtClassName.Text.Trim(); 26 string classDesc = txtClassDesc.Text.Trim(); 27 //2.sql語句 28 string sql = "insert into TbClass (tClassName,tClassDesc) values (@classname,@classdesc)"; 29 //3.定義參數數組 30 SqlParameter[] parameters = new SqlParameter[] { 31 new SqlParameter("@classname",System.Data.SqlDbType.NVarChar,50){Value = className }, 32 new SqlParameter("@classdesc",System.Data.SqlDbType.NVarChar,250){Value = classDesc } 33 }; 34 //4.調用SqlHelper,返回結果 35 return SqlHelper.ExecuteNonQurey(sql,parameters) > 0; 36 37 }
然後看一下插入的結果:
4.修改班級和刪除班級
(1)實現選中某行,該行的信息出現在下麵的編輯框中
要實現對某個行的操作,首先得選中某行,所以,首先要把dataGridView的屬性里的SelectionMode改為FullRowSelect,如圖:
然後,要在滑鼠選中某一行時,獲取該行的tClassId.接下來看看獲取該id的做法:
在dataGridView的屬性頁中找到一個名為RowEnter的事件,雙擊進入方法,編寫函數:
然後我們看代碼:
1 private void dataGridView1_RowEnter(object sender, DataGridViewCellEventArgs e) 2 { 3 //獲取當前選中的行對象 4 DataGridViewRow currentRow = this.dataGridView1.Rows[e.RowIndex]; 5 6 //獲取選中行對象中的值,並將值存入TbClass中 7 TbClass model = currentRow.DataBoundItem as TbClass; 8 9 if (model != null) 10 { 11 txtClassId.Text = model.tClassId.ToString(); 12 txtEditClassName.Text = model.tClassName.ToString(); 13 txtEditClassDesc.Text = model.tClassDesc.ToString(); 14 } 15 16}
(3)實現修改操作
在獲取了某行的行內信息後那麼對該行進行修改和刪除就變得簡單了,又是幾個資料庫的操作,下麵我們雙擊保存修改,進入修改按鈕方法體中書寫代碼:
代碼如下:
1 /// <summary> 2 /// 將修改後的內容存儲到資料庫,並重新載入數據 3 /// </summary> 4 /// <param name="sender"></param> 5 /// <param name="e"></param> 6 private void button2_Click(object sender, EventArgs e) 7 { 8 //獲取修改後的數據 9 TbClass model = new TbClass(); 10 int classId = Convert.ToInt32(txtClassId.Text); 11 string className = txtEditClassName.Text.Trim(); 12 string classDesc = txtEditClassDesc.Text.Trim(); 13 //確定和書寫sql語句 14 string sql = "update TbClass set tClassName = @classname , tClassDesc = @classdesc where tClassId = @clsssid"; 15 //定義參數數組並賦值 16 SqlParameter[] parameters = new SqlParameter[] { 17 new SqlParameter("@clsssid",System.Data.SqlDbType.Int){ Value = classId}, 18 new SqlParameter("@classname",System.Data.SqlDbType.NVarChar,50){Value = className }, 19 new SqlParameter("@classdesc ",System.Data.SqlDbType.NVarChar,250){Value = classDesc } 20 }; 21 int row = SqlHelper.ExecuteNonQurey(sql,parameters); 22 if (row > 0) 23 { 24 MessageBox.Show("更新了" +row + "行"); 25 LoadData(); 26 } 27 else 28 { 29 30 } 31 32 }
演示結果:
(4)刪除操作
同樣是操作資料庫的語句,還是看代碼吧,哈哈:
1 private void button3_Click(object sender, EventArgs e) 2 { 3 //獲取當前行的 tClassId 4 int classId = Convert.ToInt32(txtClassId.Text); 5 //sql語句 6 string sql = "delete from TbClass where tClassId = @classid"; 7 //參數數組 8 SqlParameter[] parameters = new SqlParameter[] { 9 new SqlParameter("@classid",System.Data.SqlDbType.Int){ Value = classId} 10 }; 11 //執行sql語句 12 int row = SqlHelper.ExecuteNonQurey(sql,parameters); 13 if (row > 0) 14 { 15 MessageBox.Show("刪除了" + row + "記錄"); 16 LoadData(); 17 } 18 19 }
結果圖:
好了,關於ado.net的一些基本操作就記錄到這裡哦,後面要去學mvc了,希望和其他菜鳥們一起進步。
我的QQ: 3074596466