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

asp.net SqlDataAdapter對象使用札記

 更新時間:2009年04月09日 18:18:58   作者:  
如果 DataAdapter 遇到多個結(jié)果集,它將在 DataSet 中創(chuàng)建多個表。將向這些表提供遞增的默認(rèn)名稱 TableN,以表示 Table0 的“Table”為第一個表名。
SqlDataAdapter
SqlConnection nwindConn = new SqlConnection("Data Source=localhost;Integrated Security=SSPI;Initial Catalog=northwind");
SqlCommand selectCMD = new SqlCommand("SELECT CustomerID, CompanyName FROM Customers", nwindConn);
selectCMD.CommandTimeout = 30;
SqlDataAdapter custDA = new SqlDataAdapter();
custDA.SelectCommand = selectCMD;//通過SqlCommand給SqlDataAdapter設(shè)定參數(shù),也可//直接用select語句
nwindConn.Open();
DataSet custDS = new DataSet();
custDA.Fill(custDS, "Customers");
nwindConn.Close();
多個結(jié)果集
如果 DataAdapter 遇到多個結(jié)果集,它將在 DataSet 中創(chuàng)建多個表。將向這些表提供遞增的默認(rèn)名稱 TableN,以表示 Table0 的“Table”為第一個表名。如果以參數(shù)形式向 Fill 方法傳遞表名稱,則將向這些表提供遞增的默認(rèn)名稱 TableNameN,這些表名稱以表示 TableName0 的“TableName”為起始。
從多個 DataAdapter 填充 DataSet
可以將任意數(shù)量的 DataAdapter 與一個 DataSet 一起使用。每個 DataAdapter 都可用于填充一個或多個 DataTable 對象并將更新解析回相關(guān)數(shù)據(jù)源。DataRelation 和 Constraint 對象可以在本地添加到 DataSet,這樣,您就可以使來自多個不同數(shù)據(jù)源的數(shù)據(jù)相關(guān)聯(lián)。例如,DataSet 可以包含來自 Microsoft SQL Server 數(shù)據(jù)庫、通過 OLE DB 公開的 IBM DB2 數(shù)據(jù)庫以及對 XML 進(jìn)行流處理的數(shù)據(jù)源的數(shù)據(jù)。一個或多個 DataAdapter 對象可以處理與每個數(shù)據(jù)源的通信。
以下代碼示例從 Microsoft SQL Server 2000 上的 Northwind 數(shù)據(jù)庫填充客戶列表,從存儲在 Microsoft? Access 2000 中的 Northwind 數(shù)據(jù)庫填充訂單列表。已填充的表通過 DataRelation 相關(guān)聯(lián),然后客戶列表將與相應(yīng)客戶的訂單一起顯示出來。有關(guān) DataRelation 對象的更多信息,請參見添加表間關(guān)系和導(dǎo)航表間關(guān)系。
SqlConnection custConn = new SqlConnection("Data Source=localhost;Integrated Security=SSPI;Initial Catalog=northwind;");
SqlDataAdapter custDA = new SqlDataAdapter("SELECT * FROM Customers", custConn);
OleDbConnection orderConn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=c:\\Program Files\\Microsoft Office\\Office\\Samples\\northwind.mdb;");
OleDbDataAdapter orderDA = new OleDbDataAdapter("SELECT * FROM Orders", orderConn);
custConn.Open();
orderConn.Open();
DataSet custDS = new DataSet();
custDA.Fill(custDS, "Customers");
orderDA.Fill(custDS, "Orders");
custConn.Close();
orderConn.Close();
DataRelation custOrderRel =
custDS.Relations.Add("CustOrders",custDS.Tables["Customers"].Columns["CustomerID"], custDS.Tables["Orders"].Columns["CustomerID"]);
foreach (DataRow pRow in custDS.Tables["Customers"].Rows)
{
Console.WriteLine(pRow["CustomerID"]);
foreach (DataRow cRow in pRow.GetChildRows(custOrderRel))
Console.WriteLine("\t" + cRow["OrderID"]);
}
SQL Server Decimal 類型
DataSet 使用 .NET Framework 數(shù)據(jù)類型來存儲數(shù)據(jù)。對于大多數(shù)應(yīng)用程序,這些類型都提供了一種方便的數(shù)據(jù)源信息表示形式。但是,當(dāng)數(shù)據(jù)源中的數(shù)據(jù)類型是 SQL Server decimal 時,這種表示形式可能會導(dǎo)致問題。.NET Framework decimal 數(shù)據(jù)類型最多允許 28 個有效位,而 SQL Server decimal 數(shù)據(jù)類型則允許 38 個有效位。如果 SqlDataAdapter 在 Fill 操作過程中確定 SQL Server decimal 字段的精度大于 28 個字符,則當(dāng)前行將不會被添加到 DataTable 中。此時將發(fā)生 FillError 事件,它使您能夠確定是否將發(fā)生精度損失并作出適當(dāng)?shù)捻憫?yīng)。有關(guān) FillError 事件的更多信息,請參見使用 DataAdapter 事件。若要獲取 SQL Server decimal 值,還可以使用 SqlDataReader 對象并調(diào)用 GetSqlDecimal 方法。
在 Update 過程中使用 SqlCommand,更改DataSet記錄
以下示例使用派生類 OleDbDataAdapter 來對數(shù)據(jù)源進(jìn)行 Update。此示例假定您已經(jīng)創(chuàng)建了一個 OleDbDataAdapter 和一個 DataSet。
以下示例使用派生類 OleDbDataAdapter 來對數(shù)據(jù)源進(jìn)行 Update。此示例假定您已經(jīng)創(chuàng)建了一個 OleDbDataAdapter 和一個 DataSet。
public DataSet CreateCmdsAndUpdate(DataSet myDataSet,string myConnection,string mySelectQuery,string myTableName)
{
OleDbConnection myConn = new OleDbConnection(myConnection);
OleDbDataAdapter myDataAdapter = new OleDbDataAdapter();
myDataAdapter.SelectCommand = new OleDbCommand(mySelectQuery, myConn);
OleDbCommandBuilder custCB = new OleDbCommandBuilder(myDataAdapter);
myConn.Open();
DataSet custDS = new DataSet();
myDataAdapter.Fill(custDS);
//code to modify data in dataset here
myDataAdapter.Update(custDS, myTableName);
myConn.Close();
return custDS;
}
下面的實(shí)例將創(chuàng)建一個 SqlDataAdapter 并設(shè)置 SelectCommand 和 InsertCommand 屬性。假定已經(jīng)創(chuàng)建一個 SqlConnection 對象。
public static SqlDataAdapter CreateCustomerAdapter(SqlConnection conn)
{
SqlDataAdapter da = new SqlDataAdapter();
SqlCommand cmd;
// Create the SelectCommand.
cmd = new SqlCommand("SELECT * FROM Customers " +
"WHERE Country = @Country AND City = @City", conn);
cmd.Parameters.Add("@Country", SqlDbType.NVarChar, 15);
cmd.Parameters.Add("@City", SqlDbType.NVarChar, 15);
da.SelectCommand = cmd;
// Create the InsertCommand.
cmd = new SqlCommand("INSERT INTO Customers (CustomerID, CompanyName) " +
"VALUES (@CustomerID, @CompanyName)", conn);
cmd.Parameters.Add("@CustomerID", SqlDbType.NChar, 5, "CustomerID");
cmd.Parameters.Add("@CompanyName", SqlDbType.NVarChar, 40, "CompanyName");
da.InsertCommand = cmd;
return da;
}
下面的實(shí)例創(chuàng)建一個 SqlDataAdapter 并設(shè)置 SelectCommand 和 DeleteCommand 屬性。假定已經(jīng)創(chuàng)建一個 SqlConnection 對象。
public static SqlDataAdapter CreateCustomerAdapter(SqlConnection conn)
{
SqlDataAdapter da = new SqlDataAdapter();
SqlCommand cmd;
SqlParameter parm;
// Create the SelectCommand.
cmd = new SqlCommand("SELECT * FROM Customers " +
"WHERE Country = @Country AND City = @City", conn);
cmd.Parameters.Add("@Country", SqlDbType.NVarChar, 15);
cmd.Parameters.Add("@City", SqlDbType.NVarChar, 15);
da.SelectCommand = cmd;
// Create the DeleteCommand.
cmd = new SqlCommand("DELETE FROM Customers WHERE CustomerID = @CustomerID", conn);
parm = cmd.Parameters.Add("@CustomerID", SqlDbType.NChar, 5, "CustomerID");
parm.SourceVersion = DataRowVersion.Original;
da.DeleteCommand = cmd;
return da;
}
下面的實(shí)例將創(chuàng)建一個 SqlDataAdapter 并設(shè)置 SelectCommand 和 UpdateCommand 屬性。假定已經(jīng)創(chuàng)建一個 SqlConnection 對象。
public static SqlDataAdapter CreateCustomerAdapter(SqlConnection conn)
{
SqlDataAdapter da = new SqlDataAdapter();
SqlCommand cmd;
SqlParameter parm;
// Create the SelectCommand.
cmd = new SqlCommand("SELECT * FROM Customers " +
"WHERE Country = @Country AND City = @City", conn);
cmd.Parameters.Add("@Country", SqlDbType.NVarChar, 15);
cmd.Parameters.Add("@City", SqlDbType.NVarChar, 15);
da.SelectCommand = cmd;
// Create the UpdateCommand.
cmd = new SqlCommand("UPDATE Customers SET CustomerID = @CustomerID, CompanyName = @CompanyName " +
"WHERE CustomerID = @oldCustomerID", conn);
cmd.Parameters.Add("@CustomerID", SqlDbType.NChar, 5, "CustomerID");
cmd.Parameters.Add("@CompanyName", SqlDbType.NVarChar, 40, "CompanyName");
parm = cmd.Parameters.Add("@oldCustomerID", SqlDbType.NChar, 5, "CustomerID");
parm.SourceVersion = DataRowVersion.Original;
da.UpdateCommand = cmd;
return da;
}

相關(guān)文章

  • ASP.NET筆記之廣告控件的使用方法

    ASP.NET筆記之廣告控件的使用方法

    本篇文章小編為大家介紹,ASP.NET筆記之廣告控件的使用方法,需要的朋友參考下
    2013-04-04
  • 淺談ASP.NET MVC應(yīng)用程序的安全性

    淺談ASP.NET MVC應(yīng)用程序的安全性

    web應(yīng)用程序的安全性算是一個老生常談的問題了,當(dāng)然asp.net mvc也不例外,雖然他在設(shè)計(jì)之初就對此有了一些防范,但是還是要差很多,有很多地方需要我們程序猿們注意的地方,我們今天就來簡單的探討下
    2014-11-11
  • WPF在自定義文本框中實(shí)現(xiàn)輸入法跟隨光標(biāo)

    WPF在自定義文本框中實(shí)現(xiàn)輸入法跟隨光標(biāo)

    本文主要為大家介紹了如何在WPF寫一個自定義的文本框,并且能實(shí)現(xiàn)讓輸入法跟隨光標(biāo)。文中的示例代碼講解詳細(xì),需要的可以參考一下
    2022-02-02
  • .net core如何利用ConcurrentTest組件對方法進(jìn)行壓力測試詳解

    .net core如何利用ConcurrentTest組件對方法進(jìn)行壓力測試詳解

    這篇文章主要給大家介紹了關(guān)于.net core如何利用ConcurrentTest組件對方法進(jìn)行壓力測試的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧
    2018-11-11
  • WPF自定義Expander控件樣式實(shí)現(xiàn)酷炫Style

    WPF自定義Expander控件樣式實(shí)現(xiàn)酷炫Style

    這篇文章介紹了WPF自定義Expander控件樣式實(shí)現(xiàn)酷炫Style的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-01-01
  • .Net?core?Blazor+自定義日志提供器實(shí)現(xiàn)實(shí)時日志查看器的原理解析

    .Net?core?Blazor+自定義日志提供器實(shí)現(xiàn)實(shí)時日志查看器的原理解析

    我們經(jīng)常遠(yuǎn)程連接服務(wù)器去查看日志,比較麻煩,如果直接訪問項(xiàng)目的某個頁面就能實(shí)時查看日志就比較奈斯了,結(jié)合blazor實(shí)現(xiàn)了基本效果,這篇文章主要介紹了.Net?core?Blazor+自定義日志提供器實(shí)現(xiàn)實(shí)時日志查看器,需要的朋友可以參考下
    2022-10-10
  • ASP.NET MVC HtmlHelper如何擴(kuò)展

    ASP.NET MVC HtmlHelper如何擴(kuò)展

    ASP.NET MVC 中HtmlHelper方法為我們提供很多html標(biāo)簽,只需在頁面調(diào)用就行了,但是微軟并沒有把所有的html標(biāo)簽都對應(yīng)有了擴(kuò)展方法,需要我們自定義HtmlHelper,來滿足我們需要。
    2016-05-05
  • 一文帶你了解.Net基于Threading.Mutex實(shí)現(xiàn)互斥鎖

    一文帶你了解.Net基于Threading.Mutex實(shí)現(xiàn)互斥鎖

    互斥鎖是一個互斥的同步對象,意味著同一時間有且僅有一個線程可以獲取它。這篇文章主要介紹了一文帶你了解.Net基于Threading.Mutex實(shí)現(xiàn)互斥鎖,感興趣的可以了解一下
    2021-06-06
  • .NET單元測試使用AutoFixture按需填充的幾種方式和最佳實(shí)踐記錄

    .NET單元測試使用AutoFixture按需填充的幾種方式和最佳實(shí)踐記錄

    AutoFixture是一個.NET庫,旨在簡化單元測試中的數(shù)據(jù)設(shè)置過程,通過自動生成測試數(shù)據(jù),它幫助開發(fā)者減少測試代碼的編寫量,使得單元測試更加簡潔、易讀和易維護(hù),本文介紹.NET單元測試使用AutoFixture按需填充的幾種方式和最佳實(shí)踐記錄,感興趣的朋友一起看看吧
    2024-07-07
  • ASP.NET 5升級后如何刪除舊版本的DNX

    ASP.NET 5升級后如何刪除舊版本的DNX

    這篇文章主要介紹了ASP.NET 5升級后如何刪除舊版本的DNX,其實(shí)就是簡單的四步走,就能輕松刪除舊版本的DNX,感興趣的小伙伴們可以參考一下
    2015-11-11

最新評論

静宁县| 故城县| 海林市| 涪陵区| 葫芦岛市| 金山区| 翁牛特旗| 谢通门县| 栾川县| 义马市| 普定县| 额尔古纳市| 长泰县| 长沙市| 清徐县| 乌兰察布市| 广西| 重庆市| 抚宁县| 沾益县| 祁连县| 嘉兴市| 绥芬河市| 宾川县| 江阴市| 博兴县| 灌阳县| 开封市| 郎溪县| 蒲城县| 咸丰县| 图们市| 阿坝| 五峰| 南澳县| 长春市| 思南县| 阜新| 梁平县| 永昌县| 焉耆|