C#winform中數(shù)據(jù)庫綁定DataGrid的實(shí)現(xiàn)
第一次寫博客,記錄一下
最近在利用winform和數(shù)據(jù)庫SQLServe進(jìn)行數(shù)據(jù)操作,界面上需要顯示數(shù)據(jù)庫的一部分內(nèi)容,于是使用DataGridView完成與數(shù)據(jù)庫的交互,下面是構(gòu)建的步驟。
1. 建立數(shù)據(jù)庫
登陸微軟的數(shù)據(jù)庫SQL Serve,然后建立數(shù)據(jù)庫,根據(jù)數(shù)據(jù)庫建立數(shù)據(jù)表,關(guān)于數(shù)據(jù)庫和數(shù)據(jù)表的知識(shí)就不再啰嗦了,網(wǎng)上有大把的資料,這是我創(chuàng)建的數(shù)據(jù)庫和數(shù)據(jù)表。


2.C#winform創(chuàng)建窗體程序
我用的是Visual Studio20222版本創(chuàng)建的,然后在工程中創(chuàng)建數(shù)據(jù)集選項(xiàng),如下圖,會(huì)在工程中生成一個(gè).xsd 的文件,文件右邊顯示拖拽的工具箱。


拖入右邊工具箱的TableAdapter的組件,該組件后面是進(jìn)行數(shù)據(jù)的數(shù)據(jù)映射,用這個(gè)很容易去進(jìn)行數(shù)據(jù)庫與表數(shù)據(jù)的操作.拖入后就會(huì)彈出TableAdapter配置向?qū)?選擇連接某個(gè)數(shù)據(jù)庫中的數(shù)據(jù)表,也可以新建連接.我這里面要導(dǎo)入的就是上述LaserSystem這個(gè)數(shù)據(jù)庫,然后下一步。

選擇創(chuàng)建新存儲(chǔ)過程的選項(xiàng)。

點(diǎn)擊查詢生成器,之后會(huì)彈出生成表的,里面都是數(shù)據(jù)庫中的表(這里就是我上面創(chuàng)建數(shù)據(jù)庫LaserSystem下的幾張表),我這里添加擇MARK_TEMPLATE這個(gè)表。

上述添加表之后,會(huì)生成該表,勾選所有列把表里面的成員都加進(jìn)來,之后確定。

上述彈窗一直執(zhí)行下去最終就會(huì)生成和數(shù)據(jù)庫MARK_TEMPLATE一樣的映射表以及MARK_TEMPLATETableAdapter,同時(shí)在工程下會(huì)自動(dòng)生成一個(gè)與之相對(duì)應(yīng)的類成員。


3.創(chuàng)建DataGridView以及數(shù)據(jù)綁定

打開工具箱,拖入DataGridView控件到winform窗體上,之后拖入之前數(shù)據(jù)集自動(dòng)生成的幾個(gè)組件DataSet1、MARK_TEMPLATETableAdapter和TableAdapterManager,拖入成功后窗體的下面會(huì)顯示這幾個(gè)組件,再繼續(xù)拖入數(shù)據(jù)集的綁定源bindingSource1組件,如下圖所示。

接下來要進(jìn)行數(shù)據(jù)綁定,首先綁定關(guān)聯(lián)dataset11和bindingSource1。

bindingSource1的DataSoure選擇關(guān)聯(lián)到dataSet11的成員MARK_TEMPLATE,這個(gè)剛好對(duì)應(yīng)到之前數(shù)據(jù)集數(shù)據(jù)庫LaserSystem下的數(shù)據(jù)表MARK_TEMPLATE。
DataGridView和bindingSource1進(jìn)行關(guān)聯(lián),如下圖所示,這就完成了數(shù)據(jù)庫中的某個(gè)表和winform中DataGridView之間的綁定關(guān)聯(lián),表頭的名稱是可以進(jìn)行修改的。


最后,拖入控件按鈕Button,在DataGridView上填寫數(shù)據(jù)保存到數(shù)據(jù)庫。

按鈕點(diǎn)擊中執(zhí)行的代碼為
private void button1_Click(object sender, EventArgs e)
{
///使更改DataGridView中的內(nèi)容有效
this.bindingSource1.EndEdit();
//把管理員中的適配器設(shè)置為當(dāng)前的適配源
this.tableAdapterManager1.MARK_TEMPLATETableAdapter = this.marK_templateTableAdapter1;
///更新表中的數(shù)據(jù),相當(dāng)于是對(duì)于的insert操作;
this.tableAdapterManager1.UpdateAll(this.dataSet11);
}
同時(shí)還可以顯示數(shù)據(jù)庫中表的內(nèi)容,加入窗體的Load事件
private void LoadPage_Load(object sender, EventArgs e)
{
//把數(shù)據(jù)加入到表中(通過tableAdapterManager1作為中介)
this.marK_templateTableAdapter1.Fill(this.dataSet11.MARK_TEMPLATE);
}
修改DataGridView可以看到數(shù)據(jù)庫的內(nèi)容成功加到數(shù)據(jù)庫中了

到此這篇關(guān)于C#winform中數(shù)據(jù)庫綁定DataGrid的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)C# 數(shù)據(jù)庫綁定DataGrid內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用Nopcommerce為商城添加滿XX減XX優(yōu)惠券功能
中秋國慶節(jié)眼看到跟前了,很多商城都借此機(jī)會(huì)搞促銷活動(dòng),什么滿200減80送優(yōu)惠券等活動(dòng),基于后臺(tái)程序是怎么實(shí)現(xiàn)的呢?下面腳本之家小編帶領(lǐng)大家一起學(xué)習(xí)吧2015-09-09
Unity調(diào)取移動(dòng)端的麥克風(fēng)進(jìn)行錄音并播放
這篇文章主要為大家詳細(xì)介紹了Unity調(diào)取移動(dòng)端的麥克風(fēng)進(jìn)行錄音并播放,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-06-06
C#如何從byte[]中直接讀取Structure實(shí)例詳解
這篇文章主要給大家介紹了關(guān)于利用C#如何從byte[]里直接讀取Structure的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03
C#類型轉(zhuǎn)換之自定義隱式轉(zhuǎn)換和顯式轉(zhuǎn)換
本文主要為大家介紹了一個(gè)新的類型轉(zhuǎn)換方法:通過自定義隱式轉(zhuǎn)換,把不一樣的數(shù)據(jù)類型反序列化為一樣的數(shù)據(jù)類型,需要的同學(xué)可以參考一下2022-03-03

