<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問(wèn)答1問(wèn)答10問(wèn)答100問(wèn)答1000問(wèn)答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問(wèn)答文章1 問(wèn)答文章501 問(wèn)答文章1001 問(wèn)答文章1501 問(wèn)答文章2001 問(wèn)答文章2501 問(wèn)答文章3001 問(wèn)答文章3501 問(wèn)答文章4001 問(wèn)答文章4501 問(wèn)答文章5001 問(wèn)答文章5501 問(wèn)答文章6001 問(wèn)答文章6501 問(wèn)答文章7001 問(wèn)答文章7501 問(wèn)答文章8001 問(wèn)答文章8501 問(wèn)答文章9001 問(wèn)答文章9501
        當(dāng)前位置: 首頁(yè) - 科技 - 知識(shí)百科 - 正文

        ADO.Net 類型化DataSet的簡(jiǎn)單介紹

        來(lái)源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 22:41:10
        文檔

        ADO.Net 類型化DataSet的簡(jiǎn)單介紹

        ADO.Net 類型化DataSet的簡(jiǎn)單介紹:一、弱類型DataSet的缺點(diǎn):1、只能通過(guò)列名引用,dataset.Tables[0].Rows[0][Age],如果寫(xiě)錯(cuò)了列名編譯時(shí)不會(huì)發(fā)現(xiàn)錯(cuò)誤,因此開(kāi)發(fā)時(shí)必須要記著列名。2、int age=Convert.ToInt32(dataset.Rows[0][Age]),取到的字段的值是object類
        推薦度:
        導(dǎo)讀ADO.Net 類型化DataSet的簡(jiǎn)單介紹:一、弱類型DataSet的缺點(diǎn):1、只能通過(guò)列名引用,dataset.Tables[0].Rows[0][Age],如果寫(xiě)錯(cuò)了列名編譯時(shí)不會(huì)發(fā)現(xiàn)錯(cuò)誤,因此開(kāi)發(fā)時(shí)必須要記著列名。2、int age=Convert.ToInt32(dataset.Rows[0][Age]),取到的字段的值是object類

        一、弱類型DataSet的缺點(diǎn):
        1、只能通過(guò)列名引用,dataset.Tables[0].Rows[0]["Age"],如果寫(xiě)錯(cuò)了列名編譯時(shí)不會(huì)發(fā)現(xiàn)錯(cuò)誤,因此開(kāi)發(fā)時(shí)必須要記著列名。
        2、int age=Convert.ToInt32(dataset.Rows[0]["Age"]),取到的字段的值是object類型,必須小心翼翼的進(jìn)行類型轉(zhuǎn)換,不僅麻煩,而且容易出錯(cuò)。
        3、將DataSet傳遞給其他使用者,使用者很難識(shí)別出有哪些列可以供使用。
        4、運(yùn)行時(shí)才能知道所有列名,數(shù)據(jù)綁定麻煩,無(wú)法使用Winform、ASP.Net的快速開(kāi)發(fā)功能。
        5、自己動(dòng)手寫(xiě)強(qiáng)類型DataSet(類型化DataSet,TypedDataSet),創(chuàng)建繼承自DataSet的PersonDataSet類,封裝出int? Age等屬性和bool IsAgeNull等方法,向PersonDataSet中填充。

        二、VS自動(dòng)生成強(qiáng)類型DataSet:
        1、步驟:添加->新建項(xiàng)->數(shù)據(jù)集
        2、將表從服務(wù)器資源管理器拖放到DataSet中。注意拖放過(guò)程是自動(dòng)根據(jù)表結(jié)構(gòu)生成強(qiáng)類型DataSet等類,沒(méi)有把數(shù)據(jù)也拖過(guò)來(lái),程序還是連的那個(gè)數(shù)據(jù)庫(kù),自動(dòng)將數(shù)據(jù)庫(kù)連接字符串寫(xiě)在了App.Config中。
        3、代碼中使用DataSet示例:CC_RecordTableAdapter adapter=new CC_RecordTableAdapter();如何得知Adapter的類名?選中DataSet中下半部分的Adapter,Name屬性就是類名。需要右鍵點(diǎn)擊類名->解析
        4、取得所有的數(shù)據(jù):adapter.GetData(),例子程序:遍歷顯示所有數(shù)據(jù),i<adapter.GetData().Count;adapter.GetData()[i].Age。
        5、常見(jiàn)問(wèn)題:類名敲不對(duì),表名+TableAdapter,表名+DataTable,表名+Row,然后用“解析”來(lái)填充類名。
        6、常見(jiàn)問(wèn)題:類的內(nèi)部定義的類要通過(guò)包含namespace的全名來(lái)引用,不能省略。類的內(nèi)部定義的類就能避免同一個(gè)namespace下類不能重名的問(wèn)題。

        三、更新DataSet:
        1、調(diào)用Adapter的Update方法就可以將DataSet的改變保存到數(shù)據(jù)庫(kù)。adapter.Update(datatable);
        2、要調(diào)用Update方法更新必須設(shè)置數(shù)據(jù)庫(kù)主鍵,同樣,Delete方法也是如此;
        3、常見(jiàn)錯(cuò)誤:“當(dāng)傳遞具有已修改行的DataRow集合時(shí),更新要求有效的UpdateCommand”,要為表設(shè)置主鍵。“誰(shuí)都變了,唯有主鍵不會(huì)變”,程序要通過(guò)主鍵來(lái)定位要更新的行。忘了設(shè)主鍵怎么辦?先到數(shù)據(jù)庫(kù)中設(shè)置主鍵,然后在DataSet的對(duì)應(yīng)DataTable上點(diǎn)擊右鍵,選擇“配置”,在對(duì)話框中點(diǎn)擊“完成”。好習(xí)慣:所有表都要設(shè)置主鍵!!!看看為什么會(huì)自動(dòng)幫我們GetData、Update、Delete。   
        現(xiàn)在做個(gè)簡(jiǎn)單的練習(xí):
        第一步:添加一個(gè)數(shù)據(jù)庫(kù),名為DB1.mdf(表T_Persons含有Id,Name,Age字段)
        第二步:添加一個(gè)應(yīng)用程序配置文件:App.config文件,其代碼如下:

        代碼如下:
        <?xml version="1.0" encoding="utf-8" ?>
        <configuration>
            <configSections>
            </configSections>
            <connectionStrings>
                <add name="類型化DataSet.Properties.Settings.DB1ConnectionString"
                    connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\DB1.mdf;Integrated Security=True;User Instance=True"
                    providerName="System.Data.SqlClient" />
            </connectionStrings>
        </configuration>

        第三步:再添加一個(gè)數(shù)據(jù)集文件:DataSetPersons.xsd,并將表T_Persons拖到數(shù)據(jù)集上。
        第四步:在窗體Form1界面放一按鈕,當(dāng)單擊它時(shí)逐個(gè)地顯示出數(shù)據(jù)庫(kù)表里的所有Name。窗體代碼如下:

        代碼如下:
          using System;
          using System.Collections.Generic;
          using System.ComponentModel;
          using System.Data;
          using System.Drawing;
          using System.Linq;
          using System.Text;
          using System.Windows.Forms;
          using 類型化DataSet.DataSetPersonsTableAdapters;

         namespace 類型化DataSet
         {
             public partial class Form1 : Form
             {
                 public Form1()
                 {
                     InitializeComponent();
                 }

                 private void Show_Click(object sender, EventArgs e)
                 {
                     //表名+TableAdapter,表名+DataTable,表名+Rows,然后用“解析”來(lái)填充類名
                     T_PersonsTableAdapter adapter = new T_PersonsTableAdapter();
                     類型化DataSet.DataSetPersons.T_PersonsDataTable personsTable = adapter.GetData();
                     for (int i = 0; i < personsTable.Count; i++)//假如是personsTable.Rows.Count則變?yōu)槿躅愋土?BR>             {
                         類型化DataSet.DataSetPersons.T_PersonsRow person = personsTable[i];
                         MessageBox.Show(person.Name);
                     }
                 }
             }
         }

        提醒:對(duì)于上面引用類內(nèi)部的類的情況,寫(xiě)類時(shí)的方法是:表名+TableAdapter,表名+DataTable,表名+Rows,然后用“解析”來(lái)填充類名。

        四、其它問(wèn)題:
        1、插入新行,調(diào)用Insert方法。
        2、數(shù)據(jù)庫(kù)表中增加了字段后怎么辦?DataSet設(shè)計(jì)器中點(diǎn)【配置】,對(duì)話框中點(diǎn)【查詢生成器】,勾選新增加的字段即可。刪除字段同樣如此。
        3、要修改字段就要重新配置生成,這就是強(qiáng)類型DataSet的弱點(diǎn)。
        4、常見(jiàn)錯(cuò)誤:報(bào)錯(cuò)、數(shù)據(jù)為空。判斷列的值為空的方法:Is**Null
        5、為什么Select方法會(huì)填充、Update方法會(huì)更新、Insert方法會(huì)插入?看看Adapter的SelectCommand等屬性就知道了,都是那些SQL語(yǔ)句在起作用,如果有需要完全可以手工調(diào)整。  如: 
        代碼如下:
             personsTable[0].Name = "Lucy";
                    adapter.Update(personsTable);//調(diào)用Update方法將對(duì)數(shù)據(jù)集的修改更新到數(shù)據(jù)庫(kù)
                    adapter.Insert("John", 50);

        聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        ADO.Net 類型化DataSet的簡(jiǎn)單介紹

        ADO.Net 類型化DataSet的簡(jiǎn)單介紹:一、弱類型DataSet的缺點(diǎn):1、只能通過(guò)列名引用,dataset.Tables[0].Rows[0][Age],如果寫(xiě)錯(cuò)了列名編譯時(shí)不會(huì)發(fā)現(xiàn)錯(cuò)誤,因此開(kāi)發(fā)時(shí)必須要記著列名。2、int age=Convert.ToInt32(dataset.Rows[0][Age]),取到的字段的值是object類
        推薦度:
        標(biāo)簽: net data ado.net
        • 熱門(mén)焦點(diǎn)

        最新推薦

        猜你喜歡

        熱門(mén)推薦

        專題
        Top
        主站蜘蛛池模板: 成年女人色毛片免费看| 久久久久久毛片免费播放| 日本二区免费一片黄2019| 亚洲AV无码专区在线亚| **一级一级毛片免费观看| 7777久久亚洲中文字幕蜜桃| 中文字幕无码毛片免费看| 亚洲国产精品无码一线岛国| 中国性猛交xxxxx免费看| 国产亚洲3p无码一区二区| 久久免费观看国产精品88av| 亚洲色图国产精品| 色影音免费色资源| 亚洲人成高清在线播放| 成人黄18免费视频| 又粗又长又爽又长黄免费视频| 亚洲精品国产精品乱码不卞| selaoban在线视频免费精品| 亚洲国产成人片在线观看无码 | 亚洲性无码av在线| 女人被免费视频网站| 日韩毛片在线免费观看| 亚洲精品无码成人AAA片| 日本免费xxxx色视频| 亚洲欧美日韩中文字幕在线一区| 国产男女猛烈无遮档免费视频网站 | 亚洲精品福利在线观看| 日本在线高清免费爱做网站| 国产成人亚洲综合在线| 国产亚洲精品xxx| 夫妻免费无码V看片| 在线播放国产不卡免费视频 | 色在线亚洲视频www| 免费va人成视频网站全| 大地影院MV在线观看视频免费| 久久精品国产亚洲AV电影 | 一级特黄特色的免费大片视频| 亚洲精品V欧洲精品V日韩精品| 久久狠狠躁免费观看2020| 亚洲精品亚洲人成在线播放| 国产在线19禁免费观看国产 |