C#?將數(shù)據(jù)庫SqlServer數(shù)據(jù)綁定到類中的過程詳解
本文講述的是讀取數(shù)據(jù)庫中數(shù)據(jù)的常用做法,即將數(shù)據(jù)庫中的數(shù)據(jù)綁定到創(chuàng)建的類中,再將類綁定到DataGridView的數(shù)據(jù)源中的做法。
一、環(huán)境和過程
環(huán)境:
- Visual Studio 2015
- SQL Server 2012
- Windows窗體應(yīng)用程序
過程:
1、添加DataGridView,如下圖:
2、在窗口的Form_Load方法中添加代碼,通過讀取數(shù)據(jù)庫將數(shù)據(jù)庫TblPerson的數(shù)據(jù)讀取到DataGridView中,數(shù)據(jù)庫TblPerson的數(shù)據(jù)如下:
3、結(jié)果如下圖,啟動程序時,數(shù)據(jù)直接加載到DataGridView中:
三、代碼
(一)Form_Load方法
注意:這里將主要的代碼封裝到LoadData方法中。
在窗口加載時,該方法將數(shù)據(jù)庫中的數(shù)據(jù)加載到DataGridView中。
/// <summary> /// 在窗口加載時,將數(shù)據(jù)庫中的數(shù)據(jù)加載到DataGridView中 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Form1_Load(object sender, EventArgs e) { LoadData(); }
(二)LoadData方法
這是本文的主要代碼。
注意:
1、數(shù)據(jù)庫中的數(shù)據(jù)可能有null值,需要判斷是否為null,然后利用int?的強制轉(zhuǎn)換和三元判斷式的方法來轉(zhuǎn)換數(shù)據(jù)。
2、需要提前寫好數(shù)據(jù)綁定的類。
/// <summary> /// 加載數(shù)據(jù)的主要方法,通過數(shù)據(jù)綁定到類中,再將類集合綁定到DataGridView的方法 /// </summary> private void LoadData() { //這個集合包含了數(shù)據(jù)庫中每一行數(shù)據(jù) List<TblPerson> lstTblPerson = new List<TblPerson>(); //連接字符串 string conStr = "server=.;database=Itcast2014;integrated security=true;"; using (SqlConnection con=new SqlConnection(conStr)) { //命令字符串,讀取所有數(shù)據(jù) string cmdTxt = "select * from TblPerson"; using (SqlCommand cmd=new SqlCommand(cmdTxt,con)) { con.Open(); using (SqlDataReader reader=cmd.ExecuteReader()) { if (reader.HasRows) { //一行一行讀取數(shù)據(jù) while (reader.Read()) { //創(chuàng)建數(shù)據(jù)類的對象,并將數(shù)據(jù)庫讀取到的每一個單元格的數(shù)據(jù)綁定到類的屬性中 TblPerson model = new TblPerson(); //因為有的數(shù)據(jù)有null值,所以需要先看看是否是null model.autoId =reader.IsDBNull(0)? null :(int?) reader.GetInt32(0); model.uName = reader.IsDBNull(1) ? null : reader.GetString(1); model.age=reader.IsDBNull(2) ? null : (int?)reader.GetInt32(2); model.height= reader.IsDBNull(3) ? null : (int?)reader.GetInt32(3); model.gender =reader.IsDBNull(4) ? null : (bool?)reader.GetBoolean(4); lstTblPerson.Add(model); } } } con.Close(); } } //數(shù)據(jù)綁定需要注意一點: //數(shù)據(jù)綁定的時候,只認屬性不認字段,所以在類中要設(shè)置對應(yīng)的屬性,內(nèi)部通過反射實現(xiàn) dataGridView1.DataSource = lstTblPerson; }
(三)TblPerson類
將數(shù)據(jù)庫中的數(shù)據(jù)綁定到TblPerson類中, 類的每一個屬性對應(yīng)數(shù)據(jù)庫中表的每一個字段。
注意:
1、因為數(shù)據(jù)庫中的數(shù)據(jù)有null值,所以用int?定義屬性的類型,即既可以是int類型,也可以是null類型。
2、數(shù)據(jù)綁定的時候,只認屬性不認字段,所以在類中要設(shè)置對應(yīng)的屬性,內(nèi)部通過反射實現(xiàn)
public class TblPerson { //這里用到了int?是因為,數(shù)據(jù)庫中的值有可能是空值,此時需要設(shè)置值為null public int? autoId { get; set; } public string uName { get; set; } public int? age { get; set; } public int? height { get; set; } public bool? gender { get; set; } }
到此這篇關(guān)于C# 將數(shù)據(jù)庫SqlServer數(shù)據(jù)綁定到類中的文章就介紹到這了,更多相關(guān)C# SqlServer數(shù)據(jù)綁定到類中內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C#抓取網(wǎng)頁數(shù)據(jù) 解析標題描述圖片等信息 去除HTML標簽
本文主要一步一步介紹利用C#抓取頁面數(shù)據(jù)的過程,抓取HTML,獲取標題、描述、圖片等信息,并去除HTML,希望對大家有所幫助。2016-04-04RegexOptions.IgnoreCase正則表達式替換,忽略大小寫
RegexOptions.IgnoreCase正則表達式替換,忽略大小寫,需要的朋友可以參考一下2013-03-03