最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#數(shù)據(jù)適配器DataAdapter

 更新時(shí)間:2022年05月12日 08:23:09   作者:springsnow  
這篇文章介紹了C#中的數(shù)據(jù)適配器DataAdapter,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

一、填充數(shù)據(jù)

DataSet ds = new DataSet();
SqlCommand cmd = new SqlCommand("select * from Catogories;select * from Customers", conn);
SqlDataAdapter da = new SqlDataAdapter(cmd);//da可以多次使用于不同的SelectCommand.CommandText
DataTableMapping map = da.TableMappings.Add("Table", "Customer");//參數(shù)依次為,數(shù)據(jù)源中表,DataSet中的表
map.ColumnMappings.Add("Name", "CustomerName");
//da.MissingMappingAction= MissingMappingAction.Ignore;
da.MissingSchemaAction = MissingSchemaAction.AddWithKey;//用于處理模式?jīng)_突,默認(rèn)為Add。
da.Fill(ds);//新增的DataTable表名默認(rèn)為"Table",而后新增的表名默認(rèn)為Table1,Table2等。
da.Fill(ds, "Customer");
da.Fill(ds, 0, 10000, "Customer");//用于分頁填充
da.FillSchema(ds, System.Data.SchemaType.Source, "Customer");//僅僅填充模式信息

如果連接未打開,則會(huì)自動(dòng)打開,F(xiàn)ill后自動(dòng)關(guān)閉,如還需要使用此連接,需要重新打開。如果conn手工已打開,F(xiàn)ill后需要手動(dòng)關(guān)閉連接。

二、將多個(gè)DataTable插入Tables集合

1、使用多個(gè)DataAdapter填充

SqlCommand cmd = new SqlCommand("select * from Catogories;s", conn);
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(ds, "Catogories");

cmd.CommandText = "select * from Customers";
SqlDataAdapter da2 = new SqlDataAdapter(cmd);
da2.Fill(ds, "Customer");

2、使用同一個(gè)DataAdapter,用不同的SelectCommandText填充

SqlCommand cmd = new SqlCommand("select * from Catogories;s", conn);
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(ds, "Catogories")

da.SelectCommand.CommandText = "select * from Customers";
da.Fill(ds, "Customer");

3、返回多個(gè)結(jié)果集的SQL(推薦)

SqlCommand cmd = new SqlCommand("select * from Catogories;select * from Customers", conn);
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(ds);

三、使用DataAdapter更新數(shù)據(jù)

DataSet dsChanged = ds.GetChanges();
if (dsChanged != null)
{
    SqlCommandBuilder builder=new SqlCommandBuilder(da);
    //自動(dòng)生成InsertCommand,UpdateCommand,DeleteCommand命令,前提是:Select語句為單表,同時(shí)此語句包含主鍵或唯一列
    da.Update(ds,"Author");//Update方法檢測(cè)DataSet中的每條記錄,如果行狀態(tài)不為Unchanaged,根據(jù)其行狀態(tài)調(diào)用不同的SQL語句。
    ds.AcceptChanges();
}
  • DataTable.AcceptChanges方法:提交自上次調(diào)用AcceptChanges以來對(duì)該表進(jìn)行的所有更改。  
    所有Added和Modified行成為Unchanged;Deleted行被移除。  
  • DataTable.RejectChanges方法:回滾自該表加載以來或上次調(diào)用AcceptChanges以來對(duì)該表進(jìn)行的所有更改。  
    Added被移除。DataRowState為Modified或Deleted的行返回到其初始狀態(tài)。 

四、使用SQL

OleDbDataAdapter da = new OleDbDataAdapter();
OleDbCommand cmd = new OleDbCommand("insert into  [A_Emp_Dept_20190522](empname,line) values (?,?)", conn);
cmd.Parameters.Add(new OleDbParameter("empname", OleDbType.Char, 11, ParameterDirection.Input, false, 0, 0, "empname", DataRowVersion.Current, null));
cmd.Parameters.Add(new OleDbParameter("line", OleDbType.Char, 11, ParameterDirection.Input, false, 0, 0, "line", DataRowVersion.Current, null));
da.InsertCommand = cmd;
//da.InsertCommand.UpdatedRowSource= UpdateRowSource.Both;
DataSet ds = new DataSet();
DataRow row = ds.Tables[0].NewRow();
row["empname"] = "222";
row["line"] = "FBd";
ds.Tables[0].Rows.Add(row);
da.Update(ds);

UpdatedRowSource

  • Both:輸出參數(shù)和返回的結(jié)果集的第一行都可以映射到 DataSet 中已更改的行。
    FirstReturnedRecord:只有返回的結(jié)果集的第一行中的數(shù)據(jù)才可以映射到 DataSet 中已更改的行。
    None:忽略任何輸出參數(shù)或返回的結(jié)果集中的行。
    OutputParameters:只有輸出參數(shù)才可以映射到 DataSet 中已更改的行

五、DataAdapter事件

  • RowUpdating:在對(duì)數(shù)據(jù)源執(zhí)行命令前的 Update(DataSet) 過程中發(fā)生。
  • RowUpdated:在對(duì)數(shù)據(jù)源執(zhí)行命令后的 Update(DataSet) 過程中發(fā)生。

SqlRowUpdatedEventArgs 類屬性

  • Command:獲取或設(shè)置當(dāng)調(diào)用 SqlCommand 時(shí)執(zhí)行的 Update(DataSet)。
  • Errors:獲取當(dāng) Command 執(zhí)行時(shí) .NET Framework 數(shù)據(jù)提供程序生成的任何錯(cuò)誤。 
  • RecordsAffected:通過執(zhí)行 SQL 語句獲取更改、插入或刪除的行數(shù)。 
  • Row:獲取通過 Update(DataSet) 發(fā)送的 DataRow。 
  • RowCount:獲取在一批更新記錄中處理的行數(shù)。 
  • StatementType:獲取所執(zhí)行的 SQL 語句的類型。 
  • Status:獲取 Command 屬性的 UpdateStatus。 
  • TableMapping:獲取通過 Update(DataSet) 發(fā)送的 DataTableMapping。

到此這篇關(guān)于C#數(shù)據(jù)適配器DataAdapter的文章就介紹到這了。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • .NET中的Timer類型用法詳解

    .NET中的Timer類型用法詳解

    這篇文章主要介紹了.NET中的Timer類型用法,較為詳細(xì)的分析了Timer類型在各種環(huán)境下的用法,需要的朋友可以參考下
    2014-08-08
  • 利用C#實(shí)現(xiàn)最基本的小說爬蟲示例代碼

    利用C#實(shí)現(xiàn)最基本的小說爬蟲示例代碼

    最近在學(xué)習(xí)c#,碰巧遇到個(gè)小說站不錯(cuò),就索性當(dāng)個(gè)練習(xí),所以這篇文章主要給大家介紹了關(guān)于利用C#實(shí)現(xiàn)最基本的小說爬蟲的相關(guān)資料,文中給出了詳細(xì)的示例代碼供大家參考學(xué)習(xí),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-10-10
  • Unity3D Shader實(shí)現(xiàn)動(dòng)態(tài)星空

    Unity3D Shader實(shí)現(xiàn)動(dòng)態(tài)星空

    這篇文章主要為大家詳細(xì)介紹了Unity3D Shader實(shí)現(xiàn)動(dòng)態(tài)星空,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • c#字符串去掉空格的二種方法(去掉兩端空格)

    c#字符串去掉空格的二種方法(去掉兩端空格)

    本文主要介紹了字符串去掉兩端空格,并且將字符串中多個(gè)空格替換成一個(gè)空格的方法,需要的朋友可以參考下
    2014-02-02
  • 淺析C# 結(jié)構(gòu)體struct

    淺析C# 結(jié)構(gòu)體struct

    這篇文章主要介紹了C# 結(jié)構(gòu)體struct 的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)c#,感興趣的朋友可以了解下
    2020-08-08
  • C#多線程系列之a(chǎn)sync和await用法詳解

    C#多線程系列之a(chǎn)sync和await用法詳解

    本文詳細(xì)講解了C#多線程中async和await的用法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-02-02
  • C#中自定義事件和委托實(shí)例

    C#中自定義事件和委托實(shí)例

    這篇文章主要介紹了C#中自定義事件和委托實(shí)例的,本文先是闡述了事件的原理,然后講解了事件和委托的步驟,并給出了實(shí)例代碼,需要的朋友可以參考下
    2015-01-01
  • C# Socket網(wǎng)絡(luò)編程實(shí)例

    C# Socket網(wǎng)絡(luò)編程實(shí)例

    這篇文章主要介紹了C# Socket網(wǎng)絡(luò)編程實(shí)例,分析了Socket網(wǎng)絡(luò)通信的原理與具體應(yīng)用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-01-01
  • C#應(yīng)用XML作為數(shù)據(jù)庫的快速開發(fā)框架實(shí)現(xiàn)方法

    C#應(yīng)用XML作為數(shù)據(jù)庫的快速開發(fā)框架實(shí)現(xiàn)方法

    這篇文章主要介紹了C#應(yīng)用XML作為數(shù)據(jù)庫的快速開發(fā)框架實(shí)現(xiàn)方法,詳細(xì)介紹了將XML作為數(shù)據(jù)庫的C#桌面應(yīng)用開發(fā)技巧,具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2014-12-12
  • C#模擬http 發(fā)送post或get請(qǐng)求的簡(jiǎn)單實(shí)例

    C#模擬http 發(fā)送post或get請(qǐng)求的簡(jiǎn)單實(shí)例

    下面小編就為大家?guī)硪黄狢#模擬http 發(fā)送post或get請(qǐng)求的簡(jiǎn)單實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-06-06

最新評(píng)論

峨山| 苏州市| 塔城市| 夹江县| 定结县| 宽甸| 吉木乃县| 桦甸市| 崇礼县| 青铜峡市| 屏东县| 金阳县| 余姚市| 龙游县| 宜丰县| 黔南| 临邑县| 浦县| 大方县| 连山| 城市| 秭归县| 汨罗市| 定西市| 勃利县| 邢台市| 七台河市| 嵊州市| 新沂市| 泽州县| 青冈县| 游戏| 陆良县| 东源县| 樟树市| 囊谦县| 德清县| 米脂县| 邻水| 梨树县| 武宁县|