一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

asp.net SqlDataAdapter對象使用札記

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ù),也可//直接用select語句
nwindConn.Open();
DataSet custDS = new DataSet();
custDA.Fill(custDS, "Customers");
nwindConn.Close();
多個結果集
如果 DataAdapter 遇到多個結果集,它將在 DataSet 中創(chuàng)建多個表。將向這些表提供遞增的默認名稱 TableN,以表示 Table0 的“Table”為第一個表名。如果以參數(shù)形式向 Fill 方法傳遞表名稱,則將向這些表提供遞增的默認名稱 TableNameN,這些表名稱以表示 TableName0 的“TableName”為起始。
從多個 DataAdapter 填充 DataSet
可以將任意數(shù)量的 DataAdapter 與一個 DataSet 一起使用。每個 DataAdapter 都可用于填充一個或多個 DataTable 對象并將更新解析回相關數(shù)據(jù)源。DataRelation 和 Constraint 對象可以在本地添加到 DataSet,這樣,您就可以使來自多個不同數(shù)據(jù)源的數(shù)據(jù)相關聯(lián)。例如,DataSet 可以包含來自 Microsoft SQL Server 數(shù)據(jù)庫、通過 OLE DB 公開的 IBM DB2 數(shù)據(jù)庫以及對 XML 進行流處理的數(shù)據(jù)源的數(shù)據(jù)。一個或多個 DataAdapter 對象可以處理與每個數(shù)據(jù)源的通信。
以下代碼示例從 Microsoft SQL Server 2000 上的 Northwind 數(shù)據(jù)庫填充客戶列表,從存儲在 Microsoft? Access 2000 中的 Northwind 數(shù)據(jù)庫填充訂單列表。已填充的表通過 DataRelation 相關聯(lián),然后客戶列表將與相應客戶的訂單一起顯示出來。有關 DataRelation 對象的更多信息,請參見添加表間關系和導航表間關系。
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ù)應用程序,這些類型都提供了一種方便的數(shù)據(jù)源信息表示形式。但是,當數(shù)據(jù)源中的數(shù)據(jù)類型是 SQL Server decimal 時,這種表示形式可能會導致問題。.NET Framework decimal 數(shù)據(jù)類型最多允許 28 個有效位,而 SQL Server decimal 數(shù)據(jù)類型則允許 38 個有效位。如果 SqlDataAdapter 在 Fill 操作過程中確定 SQL Server decimal 字段的精度大于 28 個字符,則當前行將不會被添加到 DataTable 中。此時將發(fā)生 FillError 事件,它使您能夠確定是否將發(fā)生精度損失并作出適當?shù)捻憫S嘘P FillError 事件的更多信息,請參見使用 DataAdapter 事件。若要獲取 SQL Server decimal 值,還可以使用 SqlDataReader 對象并調(diào)用 GetSqlDecimal 方法。
在 Update 過程中使用 SqlCommand,更改DataSet記錄
以下示例使用派生類 OleDbDataAdapter 來對數(shù)據(jù)源進行 Update。此示例假定您已經(jīng)創(chuàng)建了一個 OleDbDataAdapter 和一個 DataSet。
以下示例使用派生類 OleDbDataAdapter 來對數(shù)據(jù)源進行 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;
}
下面的實例將創(chuàng)建一個 SqlDataAdapter 并設置 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;
}
下面的實例創(chuàng)建一個 SqlDataAdapter 并設置 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;
}
下面的實例將創(chuàng)建一個 SqlDataAdapter 并設置 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;
}

AspNet技術asp.net SqlDataAdapter對象使用札記,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 国产女人伦码一区二区三区不卡 | 国产精品伦理久久久久久 | 成人三级视频在线观看 | 色哟哟在线资源 | 欧美日韩在线观看视频 | 五月天婷婷色 | 7777精品伊人久久久大香线蕉 | 91短视频在线观看免费最新91 | 奇米影视久久777中文字幕 | 亚州一区二区 | 精品交| 99国产精品免费视频 | 国产高清精品91在线 | 国产男女视频在线观看 | 久久夜色国产精品噜噜 | 99视频精品全部免费观看 | 热99re久久精品香蕉 | 亚洲妇人成熟性成熟美女 | 欧美成人三级大全 | 伊人久久大香线蕉综合热线 | 亚洲欧美色一区二区三区 | 午夜视频免费在线观看 | 亚洲精品日韩中文字幕久久久 | 日本免费网站观看 | 亚洲精品国产网红在线 | 国产精品日韩欧美久久综合 | 午夜激情网站 | 亚洲成人福利在线观看 | 精品一区二区三区无卡乱码 | 国产亚洲视频在线播放大全 | 国产一级成人毛片 | 色综合欧美 | 一级做a爰片久久毛片美女 一级做a爰片久久毛片人呢 | 成人永久免费视频网站在线观看 | 成人午夜在线播放 | 日韩天天摸天天澡天天爽视频 | 91网站视频在线观看 | 国产美女激情视频 | 天天摸天天碰中文字幕 | 1024cc香蕉视频 | 加勒比一区二区 |