第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

C# 關(guān)于 Dataset 的fill 方法?

C# 關(guān)于 Dataset 的fill 方法?

慕容708150 2019-02-06 11:07:39
例如://創(chuàng)建SqlConnection數(shù)據(jù)庫(kù)連接對(duì)象SqlConnection Conn = new SqlConnection(sConnectionString); //打開(kāi)ConnConn.Open();//創(chuàng)建并初始化SqlCommand對(duì)象SqlDataAdapter Customer = new SqlDataAdapter("Select * From Customers", Conn);DataSet ds = new DataSet();//使用SqlDataAdapter的Fill方法填充DataSetCustomer.Fill(ds, "Customers");DataTable tblCustomers; //創(chuàng)建一個(gè)DataTable數(shù)據(jù)表tblCustomers = ds.Tables["Customers"];//關(guān)閉數(shù)據(jù)連接Conn.Close ( ) ; 疑問(wèn):Customer.Fill(ds, "Customers");這句中"Customers" 是什么意思?有什么用處?不是直接用Customer.Fill(ds) 就可以了嗎?
查看完整描述

3 回答

?
慕碼人8056858

TA貢獻(xiàn)1803條經(jīng)驗(yàn) 獲得超6個(gè)贊

關(guān)于 Dataset 的fill 方法:

    使用DataAdapter填充DataSet

在選擇了DataAdapter的類型(SqlDataAdapter或OleDbDataAdapter)并配置了DataAdapter來(lái)執(zhí)行所需的任務(wù)之后,可以用創(chuàng)建的DataAdapter來(lái)填充DataSet。

    1.使用DataAdapter填充DataSet

可以使用DataAdapter來(lái)填充DataSet。調(diào)用DataAdapter的Fill方法,并指定要填充的DataSet表。Fill方法隱式執(zhí)行DataAdapter的SelectCommand中的SQL查詢,查詢的結(jié)果用于定義DataSet表的結(jié)構(gòu),并用數(shù)據(jù)來(lái)填充表。此外,F(xiàn)ill方法是可重載的。例如:

12345rowsAffected = aDataAdapter.Fill(DataSet);    rowsAffected = aDataAdapter.Fill(DataSet,strDataTableName);    rowsAffected = aDataAdapter Fil](DataTable);

當(dāng)填充DataSet時(shí),DataAdapter會(huì)強(qiáng)制一些約束,例如主鍵唯一性。為了提高性能,在填充DataSet前將EnforceConstraints屬性設(shè)置為false,這將在數(shù)據(jù)加載過(guò)程中禁用約束檢查。

1aDataset.EnforceConstraints=false;

     使用Datadapter填充DataSet。

下面創(chuàng)建一個(gè)DataSet,它包含一個(gè)名為Department的表。使用名為daDepartment的DataAdapter來(lái)填充該表,并調(diào)用BeginLoadData方法來(lái)優(yōu)化性能。

填充完該表之后,將一個(gè)DataGridView控件綁定到該表,該DataGridView將在屏幕上顯示信息。

123456789101112131415SqlDataAdapter daDept = new SqlDataAdapter(    "select * from humanresources.department", cn);    DataSet dsDept = new DataSet();    dsDept.Tables.Add(new DataTable("Department"));    dsDept.Tables[0].BeginLoadData();    daDept.Fill(dsDept,"Department");    dsDept.Tables[0].EndLoadData();    dataGridView1.DataSource = dsDept.Tables["Department"];

    DataAdapter和Command在如何處理Connection對(duì)象上有一個(gè)主要的區(qū)別:在調(diào)用一個(gè)Command對(duì)象的執(zhí)行方法前,將打開(kāi)與該Command相關(guān)聯(lián)的Connection對(duì)象,否則Command會(huì)拋出一個(gè)異常;DataAdapter則沒(méi)有這樣的需求。

    如果要調(diào)用DataAdapter對(duì)象的Fill方法,并且SelectCommand屬性的Connection已經(jīng)關(guān)閉,DataAdapter將自動(dòng)打開(kāi)連接、提交查詢、提取結(jié)果,然后關(guān)閉Connection。讀者也許會(huì)發(fā)現(xiàn)DataAdapter非常有條不紊,它總是將SelectCommand屬性的Connection恢復(fù)到其初始狀態(tài)。但是如果在調(diào)用Fill方法之前已經(jīng)打開(kāi)Connection,調(diào)用以后Connection仍然處于打開(kāi)狀態(tài)。因此使用DataAdapter的Fill方法時(shí),不需要手工打開(kāi)Connection。

     但在一些特殊情況下,也需要在執(zhí)行DataAdapter的Fill方法之前先打開(kāi)Connection。例如,在應(yīng)用程序啟動(dòng)時(shí),用多個(gè)DataAdapter對(duì)象將多個(gè)查詢的結(jié)果填充到DaraSet中。可以使用DataAdapter對(duì)象的構(gòu)造函數(shù)強(qiáng)制每個(gè)DataAdapter都使用相同的Connection對(duì)象。代碼如下:

1234567891011121314151617string strConn = "Provider=SQLOLEDB;Data Souroe=(local)"+                "Initial catalog=Northwind;Trusted_connection=Yes;";    OleDbConnection cn = new OleObconnection(strconn);    OleDbOataAdapter daCustomers,daOrders;    daCustomers = new OleDbDataAdapter("SELECT ... FROM Customers",cn);    daOrders = new OleDbDataAdapter("SELECT ... FROM orders",cn);    ds=new DataSet();    daCustomers Fill(ds):    daOrders.Fill(ds);

    實(shí)際上,當(dāng)兩次打開(kāi)和關(guān)閉Connection時(shí),每次都調(diào)用DataAdapter對(duì)象的Fill方法。為了避免重復(fù)地多次打開(kāi)和關(guān)閉Connection對(duì)象,在對(duì)DataAdapter對(duì)象調(diào)用Fill方法之前,先調(diào)用Connection對(duì)象的Open方法。如果要在填充數(shù)據(jù)以后關(guān)閉Connection,則應(yīng)該像下面例子中顯示的那樣調(diào)用Close方法。

1234567cn.Open();    daCusomers.Fill(ds);    daOrders.Fill(ds);    cn.Close();

    總結(jié)以上所說(shuō),一個(gè)完整的算法可以這樣寫(xiě):

12345678910111213141516171819202122232425//創(chuàng)建SqlConnection數(shù)據(jù)庫(kù)連接對(duì)象 SqlConnection Conn = new SqlConnection(sConnectionString); //打開(kāi)Conn Conn.Open(); //創(chuàng)建并初始化SqlCommand對(duì)象 SqlDataAdapter Customer = new SqlDataAdapter("Select * From Customers", Conn); DataSet ds = new DataSet(); //使用SqlDataAdapter的Fill方法填充DataSet Customer.Fill(ds, "Customers"); DataTable tblCustomers; //創(chuàng)建一個(gè)DataTable數(shù)據(jù)表 tblCustomers = ds.Tables["Customers"]; //關(guān)閉數(shù)據(jù)連接 Conn.Close ( ) ;



查看完整回答
反對(duì) 回復(fù) 2019-03-15
?
侃侃爾雅

TA貢獻(xiàn)1801條經(jīng)驗(yàn) 獲得超16個(gè)贊

Customers 代表存儲(chǔ)的表名 如果只是一張表的話就沒(méi)多大用處了,但在多表的時(shí)候就有用處了

查看完整回答
反對(duì) 回復(fù) 2019-03-15
  • 3 回答
  • 0 關(guān)注
  • 1514 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)