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