好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識(shí)庫 > ADO.Net 類型化DataSet的簡(jiǎn)單介紹

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

熱門標(biāo)簽:智能電話營(yíng)銷外呼系統(tǒng) 凱立德導(dǎo)航官網(wǎng)地圖標(biāo)注 鄭州400電話辦理 聯(lián)通 五常地圖標(biāo)注 長(zhǎng)春呼叫中心外呼系統(tǒng)哪家好 地圖標(biāo)注和認(rèn)領(lǐng) 戶外地圖標(biāo)注軟件手機(jī)哪個(gè)好用 萊蕪?fù)夂綦婁N機(jī)器人價(jià)格 電銷語音自動(dòng)機(jī)器人

一、弱類型DataSet的缺點(diǎn):
1、只能通過列名引用,dataset.Tables[0].Rows[0]["Age"],如果寫錯(cuò)了列名編譯時(shí)不會(huì)發(fā)現(xiàn)錯(cuò)誤,因此開發(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ù)綁定麻煩,無法使用Winform、ASP.Net的快速開發(fā)功能。
5、自己動(dòng)手寫強(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中。注意拖放過程是自動(dòng)根據(jù)表結(jié)構(gòu)生成強(qiáng)類型DataSet等類,沒有把數(shù)據(jù)也拖過來,程序還是連的那個(gè)數(shù)據(jù)庫,自動(dòng)將數(shù)據(jù)庫連接字符串寫在了App.Config中。
3、代碼中使用DataSet示例:CC_RecordTableAdapter adapter=new CC_RecordTableAdapter();如何得知Adapter的類名?選中DataSet中下半部分的Adapter,Name屬性就是類名。需要右鍵點(diǎn)擊類名->解析
4、取得所有的數(shù)據(jù):adapter.GetData(),例子程序:遍歷顯示所有數(shù)據(jù),iadapter.GetData().Count;adapter.GetData()[i].Age。
5、常見問題:類名敲不對(duì),表名+TableAdapter,表名+DataTable,表名+Row,然后用“解析”來填充類名。
6、常見問題:類的內(nèi)部定義的類要通過包含namespace的全名來引用,不能省略。類的內(nèi)部定義的類就能避免同一個(gè)namespace下類不能重名的問題。

三、更新DataSet:
1、調(diào)用Adapter的Update方法就可以將DataSet的改變保存到數(shù)據(jù)庫。adapter.Update(datatable);
2、要調(diào)用Update方法更新必須設(shè)置數(shù)據(jù)庫主鍵,同樣,Delete方法也是如此;
3、常見錯(cuò)誤:“當(dāng)傳遞具有已修改行的DataRow集合時(shí),更新要求有效的UpdateCommand”,要為表設(shè)置主鍵。“誰都變了,唯有主鍵不會(huì)變”,程序要通過主鍵來定位要更新的行。忘了設(shè)主鍵怎么辦?先到數(shù)據(jù)庫中設(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ù)庫,名為DB1.mdf(表T_Persons含有Id,Name,Age字段)
第二步:添加一個(gè)應(yīng)用程序配置文件:App.config文件,其代碼如下:

復(fù)制代碼 代碼如下:

?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ù)庫表里的所有Name。窗體代碼如下:

復(fù)制代碼 代碼如下:

  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,然后用“解析”來填充類名
             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)部的類的情況,寫類時(shí)的方法是:表名+TableAdapter,表名+DataTable,表名+Rows,然后用“解析”來填充類名。

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

復(fù)制代碼 代碼如下:

     personsTable[0].Name = "Lucy";
            adapter.Update(personsTable);//調(diào)用Update方法將對(duì)數(shù)據(jù)集的修改更新到數(shù)據(jù)庫
            adapter.Insert("John", 50);

您可能感興趣的文章:
  • ASP.NET中DataTable與DataSet之間的轉(zhuǎn)換示例
  • ASP.NET 綁定DataSet中的多個(gè)表
  • asp.net DataSet進(jìn)行排序
  • ASP.NET用DataSet導(dǎo)出到Excel的方法
  • asp.net下DataSet.WriteXml(String)與(Stream)的區(qū)別
  • asp.net下用DataSet生成XML的問題
  • 詳細(xì)說明asp.net中datareader 和 dataset 的區(qū)別
  • ASP.NET中實(shí)現(xiàn)把Json數(shù)據(jù)轉(zhuǎn)換為ADO.NET DataSet對(duì)象
  • asp.net如何將DataSet轉(zhuǎn)換成josn并輸出
  • .NET中如何將文本文件的內(nèi)容存儲(chǔ)到DataSet

標(biāo)簽:福州 紅河 岳陽 湖州 西寧 宣城 衢州 西藏

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《ADO.Net 類型化DataSet的簡(jiǎn)單介紹》,本文關(guān)鍵詞  ADO.Net,類型化,DataSet,的,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《ADO.Net 類型化DataSet的簡(jiǎn)單介紹》相關(guān)的同類信息!
  • 本頁收集關(guān)于ADO.Net 類型化DataSet的簡(jiǎn)單介紹的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 国产精品久久久精品a级小说| 搡老熟女一区二区三区在线视频| 主播蜜汁丝袜精品自拍| 黄色一级免费| 国产三点都露的大尺度电影| 亚洲免费在线视频观看| 2019天堂中文字幕| 韩国精品欧美一区二区三区| 调教r18车肉高h男男| 男人叉叉女人| 麻豆国产欧美日韩综合精品二区| 91色噜噜噜狠狠色综合久色综合 | 够了够了到高c了好多水视频| 双蛇入侵1v2| 无遮挡H纯肉动漫在线播放| 国产精品高清视亚洲乱码| 男人吃奶玩乳免费视频| 波兰性大赛无码视频在线观看| 浓厚な接吻と肉体の交わりこころ| 么公深好爽想要| 国产大片精品一区二区在线看| 迪丽热巴被陈飞宇亲嘴变形| 偏偏宠爱漫画版免费观看| 波多野结衣gvg厨房系列| a级片免费网站| 操欧美美女| 扒开腿挺进肉嫩小说18禁视频| 欧美国产精品va在线观看| 91热爆国产最美TS人妖沫沫| 欧美日韩精品一区二区在线线 | 国产午睡沙发被弄醒完整版| 66人体美女大胆大尺度写真 | 亚洲AV一区二区三区百合| 久久精品女王调教亚洲AV麻豆| videos性欧美| 色欲游戏舱(全息快穿NPH)| 午夜a级毛片| 美女视频很黄很黄的免费| 健身教练65话如果是你我可以| 冀州市| 国产乱弄视频在线观看|