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ù)綁定的時候,只認(rèn)屬性不認(rèn)字段,所以在類中要設(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ù)綁定的時候,只認(rèn)屬性不認(rèn)字段,所以在類中要設(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#實現(xiàn)將小數(shù)值四舍五入為整數(shù)
在項目的開發(fā)中,遇到一些除法計算內(nèi)容會產(chǎn)生小數(shù)值,但是又需要根據(jù)項目的實際情況將這些小數(shù)內(nèi)容化為整數(shù),所以本文為大家整理了C#實現(xiàn)將小數(shù)值四舍五入為整數(shù)的方法,希望對大家有所幫助2023-07-07
C#如何在窗體程序中操作數(shù)據(jù)庫數(shù)據(jù)
這篇文章主要介紹了C#如何在窗體程序中操作數(shù)據(jù)庫數(shù)據(jù),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-04-04
C#實現(xiàn)數(shù)字轉(zhuǎn)換漢字的示例詳解
這篇文章主要為大家詳細(xì)介紹了如何利用C#實現(xiàn)數(shù)字轉(zhuǎn)換漢字功能,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)C#有一定的幫助,感興趣的小伙伴可以跟隨小編一起了解一下2022-12-12
WinForm DataGridView控件隔行變色的小例子
WinForm的DataGridView控件設(shè)置行的顏色2013-03-03

