freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

數(shù)據(jù)適配器-sqldataadapter類(編輯修改稿)

2024-08-15 17:55 本頁面
 

【文章內(nèi)容簡介】 erID, @CompanyName), custConn)。 = new SqlCommand(UPDATE Customers SET CustomerID = @CustomerID, CompanyName = @CompanyName +WHERE CustomerID = @oldCustomerID, custConn)。 = new SqlCommand(DELETE FROM Customers WHERE CustomerID = @CustomerID, custConn)。 (@CustomerID, , 5, CustomerID)。 (@CompanyName, , 40, CompanyName)。 (@CustomerID, , 5, CustomerID)。 (@CompanyName, , 40, CompanyName)。 (@oldCustomerID, , 5, CustomerID).SourceVersion = 。 (@CustomerID, , 5, CustomerID).SourceVersion = 。 } SqlDataAdapter方法 - fill ? Fill 方法-在 DataSet中添加或刷新行以匹配數(shù)據(jù)源中的行 ? Fill 方法使用 SELECT 語句從數(shù)據(jù)源中檢索數(shù)據(jù)。與 Select 命令關(guān)聯(lián)的 IDbConnection對(duì)象必須有效,但不需要將其打開。如果調(diào)用 Fill 之前 IDbConnection 已關(guān)閉,則將其打開以檢索數(shù)據(jù),然后再將其關(guān)閉。如果調(diào)用 Fill 之前連接已打開,它將保持打開狀態(tài)。 ? 如果在填充數(shù)據(jù)集時(shí)遇到錯(cuò)誤,則錯(cuò)誤發(fā)生之前添加的行將保留在數(shù)據(jù)集中。操作的剩余部分被中止。 ? 如果命令不返回任何行,則不向 DataSet中添加表,并且不引發(fā)異常。 ? 如果 DbDataAdapter對(duì)象在填充 DataTable時(shí)遇到重復(fù)列,它將以“ columnname1”、“ columnname2”、“ columnname3”這種模式命名后面的列。如果傳入數(shù)據(jù)包含未命名的列,它們將按“ Column1”、“ Column2”的模式放在 DataSet 中。 ? 當(dāng)指定的查詢返回多項(xiàng)結(jié)果時(shí),每個(gè)返回查詢的行的結(jié)果集都放置在單獨(dú)的表中。將整數(shù)值追加到指定的表名從而對(duì)其他結(jié)果集進(jìn)行命名(例如“ Table”、“ Table1”、“ Table2”等)。如果某個(gè)查詢不返回行,則不會(huì)為該查詢創(chuàng)建表。因此,如果先處理一個(gè)插入查詢,然后再處理一個(gè)選擇查詢,那么由于為選擇查詢創(chuàng)建的表是第一個(gè)表,所以該表將被命名為“ Table”。在應(yīng)用程序中使用列名和表名時(shí)應(yīng)小心,一定不要與這些命名模式發(fā)生沖突。 SqlDataAdapter方法 - fill ? 當(dāng)用于填充 DataSet 的 SELECT 語句(例如批處理 SQL 語句)返回多項(xiàng)結(jié)果時(shí),如果其中一項(xiàng)結(jié)果包含錯(cuò)誤,則將跳過所有后面的結(jié)果并且不將其添加到 DataSet 中。 ? 當(dāng)使用后面的 Fill 調(diào)用來刷新 DataSet 的內(nèi)容時(shí),必須滿足以下兩個(gè)條件: 1. 該 SQL 語句應(yīng)該與最初用來填充 DataSet的語句匹配。 2. 必須存在鍵列信息。 ? 如果主鍵信息存在,則協(xié)調(diào)任何重復(fù)的行,并且這些重復(fù)行將只在與 DataSet 對(duì)應(yīng)的 DataTable 中出現(xiàn)一次??梢酝ㄟ^ FillSchema(通過指定 DataTable 的 PrimaryKey屬性),或者通過將 MissingSchemaAction 屬性設(shè)置為 AddWithKey 來設(shè)置主鍵信息。 ? 如果 SelectCommand 返回 OUTER JOIN 的結(jié)果,則 DataAdapter 不為生成的 DataTable 設(shè)置 PrimaryKey 值。必須顯式定義主鍵,確保正確地解析重復(fù)行。 注意 當(dāng)處理返回多項(xiàng)結(jié)果的批處理 SQL 語句時(shí),用于 OLE DB 的 .NET Framework 數(shù)據(jù)提供程序的 FillSchema 的實(shí)現(xiàn)只為第一項(xiàng)結(jié)果檢索架構(gòu)信息。若要為多項(xiàng)結(jié)果檢索架構(gòu)信息,請(qǐng)使用 MissingSchemaAction 設(shè)置為 AddWithKey 的 Fill。 在 DataSet中添加或刷新行以匹配使用 DataSet 和 DataTable名稱的數(shù)據(jù)源中的行 public void GetMyRecords() { // ... // create myDataSet and myDataAdapter // ... (myDataSet, Categories)。 } Fill 方法支持以下情況: DataSet 包含多個(gè) DataTable 對(duì)象,而這些對(duì)象的名稱只有大小寫不同。在這種情況下, Fill 執(zhí)行區(qū)分大小寫的比較以查找相應(yīng)的表,如果不存在完全匹配的表,則新建一個(gè)。下面的 C 代碼闡釋該行為。 DataSet dataset = new DataSet()。 (aaa)。 (AAA)。 (dataset, aaa)。 // Fills aaa, which already exists in the DataSet. (dataset, Aaa)。 // Adds a new table called Aaa. 如果調(diào)用 Fill 并且 DataSet 只包含一個(gè)其名稱只有大小寫不同的 DataTable,則更新該 DataTable。在這種情況下,比較不區(qū)分大小寫。下面的 C 代碼闡釋該行為。 DataSet dataset = new DataSet()。 (aaa)。 (dataset, AAA)。 // Fills table aaa because only one similarly named table is in the DataSet. 在 DataSet的指定范圍中添加或刷新行以匹配使用 DataSet 和 DataTable 名稱的數(shù)據(jù)源中的行 public int Fill(DataSet, int, int, string)。 public int Fill( DataSet dataSet, int startRecord, int maxRecords, string srcTable )。 參數(shù) dataSet 要用記錄和架構(gòu)(如果必要)填充的 DataSet。 startRecord 從其開始的從零開始的記錄號(hào)。 maxRecords 要檢索的最大記錄數(shù)。 srcTable 用于表映射的源表的名稱。 下面的示例利用 categories 表中從第 10 行開始的 15 行數(shù)據(jù)來填充 DataSet。 public void GetMyRecords() { // ... // create myDataSet and myDataAdapter // ... (myDataSet,9,15,Categories)。 } SqlDataAdapter方法 - Update 方法 ? 為指定的 DataRow對(duì)象數(shù)組中每個(gè)已插入、已更新或已刪除的行調(diào)用相應(yīng)的 INSERT、 UPDATE 或 DELETE 語句 ? 當(dāng)應(yīng)用程序調(diào)用 Update 方法時(shí), DbDataAdapter根據(jù) DataSet中配置的索引順序?yàn)槊恳恍袡z查 RowState 屬性,并迭代執(zhí)行所需的 INSERT、 UPDATE 或 DELETE 語句。例如,由于 DataTable中行的排序, Update 可能先執(zhí)行一個(gè) DELETE 語句,接著執(zhí)行一個(gè) INSERT 語句,然后再執(zhí)行另一個(gè) DELETE 語句。 ? 應(yīng)注意,這些語句不是作為批處理進(jìn)程執(zhí)行的;每一行都是單獨(dú)更新的。在必須控制語句類型順序的情況下(例如, INSERT 在 UPDATE 之前),應(yīng)用程序可以調(diào)用 GetChanges方法。有關(guān)更多信息,請(qǐng)參見使用 DataAdapter 和 DataSet 更新數(shù)據(jù)庫。 ? 如果未指定 INSERT、 UPDATE 或 DELETE 語句, Update 方法會(huì)生成異常。但是,如果設(shè)置 .NET Framework 數(shù)據(jù)提供程序的 SelectCommand 屬性,則可以創(chuàng)建 SqlCommandBuilder或 OleDbCommandBuilder對(duì)象來為單個(gè)表更新自動(dòng)生成 SQL 語句。然后, CommandBuilder 將生成其他任何未設(shè)置的 SQL 語句。此生成邏輯要求 DataSet 中存在鍵列信息。有關(guān)更多信息,請(qǐng)參見自動(dòng)生成的命令。 ? Update 方法在執(zhí)行更新之前從第一個(gè)映射列出的表中檢索行。然后, Update 使用 UpdatedRowSource屬性的值刷新該行。忽略返回的任何其他行。 ? 在將任何數(shù)據(jù)加載回 DataSet 之后,將引發(fā) OnRowUpdated事件,從而允許用戶檢查經(jīng)協(xié)調(diào)的 DataSet 行以及該命令返回的任何輸出參數(shù)。在對(duì)一行成功進(jìn)行更新之后,將接受對(duì)該行的更改 SqlDataAdapter方法 - Update 方法 ? 當(dāng)使用 Update 時(shí),執(zhí)行的順序如下: 1. 將 DataRow 中的值移至參數(shù)值。 2. 引發(fā) OnRowUpdating事件。 3. 執(zhí)行命令。 4. 如果該命令設(shè)置為 FirstReturnedRecord,返回的第一項(xiàng)結(jié)果將放置在 DataRow中。 5. 如果存在輸出參數(shù),它們將被放在 DataRow 中。 6. 引發(fā) OnRowUpdated事件。 7. 調(diào)用 AcceptChanges。 ? 與 DbDataAdapter 關(guān)聯(lián)的每個(gè)命令通常都有一個(gè)與其關(guān)聯(lián)的參數(shù)集合。參數(shù)通過 .NET Framework 數(shù)據(jù)提供程序的 Parameter 類的 SourceColumn 和 SourceVersion 屬性映射到當(dāng)前行。 SourceColumn 引用 DataTable 列,而 DbDataAdapter 引用該列來獲取當(dāng)前行的參數(shù)值 SqlDataAdapter方法 - Update 方法 ? SourceColumn 屬性還用于將輸出或輸入 /輸出參數(shù)的值映射回 DataSet。如果它引用一個(gè)不存在的列,則會(huì)生成異常。 ? .NET Framework 數(shù)據(jù)提供程序的 Parameter 類的 SourceVersion 屬性確定使用列值的哪個(gè)版本: Original、Current 還是 Proposed。該功能通常用于在 UPDATE 語句的 WHERE 子句中包含初始值,以檢查開放式并發(fā)沖突。 注意 如果在更新行時(shí)出錯(cuò),則會(huì)引發(fā)異常并停止執(zhí)行更新。若要在遇到錯(cuò)誤時(shí)繼續(xù)更新操作而不生成
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)教案相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1