亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > .NET > 正文

asp.net SqlDataAdapter對象使用札記

2024-07-10 13:20:19
字體:
來源:轉載
供稿:網友
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設定參數,也可//直接用select語句
nwindConn.Open();
DataSet custDS = new DataSet();
custDA.Fill(custDS, "Customers");
nwindConn.Close();
多個結果集
如果 DataAdapter 遇到多個結果集,它將在 DataSet 中創建多個表。將向這些表提供遞增的默認名稱 TableN,以表示 Table0 的“Table”為第一個表名。如果以參數形式向 Fill 方法傳遞表名稱,則將向這些表提供遞增的默認名稱 TableNameN,這些表名稱以表示 TableName0 的“TableName”為起始。
從多個 DataAdapter 填充 DataSet
可以將任意數量的 DataAdapter 與一個 DataSet 一起使用。每個 DataAdapter 都可用于填充一個或多個 DataTable 對象并將更新解析回相關數據源。DataRelation 和 Constraint 對象可以在本地添加到 DataSet,這樣,您就可以使來自多個不同數據源的數據相關聯。例如,DataSet 可以包含來自 Microsoft SQL Server 數據庫、通過 OLE DB 公開的 IBM DB2 數據庫以及對 XML 進行流處理的數據源的數據。一個或多個 DataAdapter 對象可以處理與每個數據源的通信。
以下代碼示例從 Microsoft SQL Server 2000 上的 Northwind 數據庫填充客戶列表,從存儲在 Microsoft? Access 2000 中的 Northwind 數據庫填充訂單列表。已填充的表通過 DataRelation 相關聯,然后客戶列表將與相應客戶的訂單一起顯示出來。有關 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 數據類型來存儲數據。對于大多數應用程序,這些類型都提供了一種方便的數據源信息表示形式。但是,當數據源中的數據類型是 SQL Server decimal 時,這種表示形式可能會導致問題。.NET Framework decimal 數據類型最多允許 28 個有效位,而 SQL Server decimal 數據類型則允許 38 個有效位。如果 SqlDataAdapter 在 Fill 操作過程中確定 SQL Server decimal 字段的精度大于 28 個字符,則當前行將不會被添加到 DataTable 中。此時將發生 FillError 事件,它使您能夠確定是否將發生精度損失并作出適當的響應。有關 FillError 事件的更多信息,請參見使用 DataAdapter 事件。若要獲取 SQL Server decimal 值,還可以使用 SqlDataReader 對象并調用 GetSqlDecimal 方法。
在 Update 過程中使用 SqlCommand,更改DataSet記錄
以下示例使用派生類 OleDbDataAdapter 來對數據源進行 Update。此示例假定您已經創建了一個 OleDbDataAdapter 和一個 DataSet。
以下示例使用派生類 OleDbDataAdapter 來對數據源進行 Update。此示例假定您已經創建了一個 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;
}
下面的實例將創建一個 SqlDataAdapter 并設置 SelectCommand 和 InsertCommand 屬性。假定已經創建一個 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;
}
下面的實例創建一個 SqlDataAdapter 并設置 SelectCommand 和 DeleteCommand 屬性。假定已經創建一個 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;
}
下面的實例將創建一個 SqlDataAdapter 并設置 SelectCommand 和 UpdateCommand 屬性。假定已經創建一個 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;
}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲国产一区自拍| 中文字幕久热精品在线视频| 91性高湖久久久久久久久_久久99| 日韩国产在线看| 色播久久人人爽人人爽人人片视av| 97视频在线观看视频免费视频| 中文字幕精品网| 欧美另类xxx| 日韩av中文字幕在线免费观看| 97在线视频观看| 欧美日韩综合视频网址| 国产精品久久久久免费a∨| 中文字幕亚洲图片| 一本一本久久a久久精品综合小说| 亚洲尤物视频网| 亚洲最大av网站| 91av视频在线观看| 日韩成人在线视频网站| 成人字幕网zmw| 中文字幕精品视频| 黑人巨大精品欧美一区免费视频| 欧美中文字幕视频在线观看| 成人深夜直播免费观看| 亚洲性xxxx| 国产成人a亚洲精品| 欧美日本啪啪无遮挡网站| 国产午夜精品一区二区三区| 欧美色视频日本高清在线观看| 亚洲天堂男人天堂| 欧美亚洲成人免费| 亚洲成人av在线播放| 久久精品国产69国产精品亚洲| 亚洲美女精品成人在线视频| 亚洲电影免费在线观看| 日韩不卡在线观看| 欧美成人免费在线观看| 国产在线精品一区免费香蕉| 久久久国产精彩视频美女艺术照福利| www.99久久热国产日韩欧美.com| 色综合伊人色综合网站| 91综合免费在线| 97碰在线观看| 亚洲一区二区中文字幕| 久久综合九色九九| 欧美激情在线一区| 欧美性开放视频| 91人成网站www| 91国产精品91| 国产午夜精品免费一区二区三区| 国产婷婷97碰碰久久人人蜜臀| 亚洲成人av资源网| 欧美日韩成人在线视频| 精品在线小视频| 色妞色视频一区二区三区四区| 欧美性猛交xxxxx免费看| 亚洲精品资源美女情侣酒店| 国产精品网址在线| 欧美激情中文字幕乱码免费| 亚洲国产成人久久综合一区| 久久噜噜噜精品国产亚洲综合| 国外视频精品毛片| 色综合久久88色综合天天看泰| 一区二区三区视频观看| 欧洲亚洲免费在线| 日韩欧美精品在线观看| 国产精品久久久久久久av大片| 欧美wwwwww| 欧美一级片免费在线| 日本精品久久久| 热re99久久精品国产66热| 日韩精品欧美国产精品忘忧草| 日本中文字幕成人| 91精品综合久久久久久五月天| 性视频1819p久久| 国产精品免费在线免费| 国产成人在线视频| 久久精品国产96久久久香蕉| 欧美一区亚洲一区| 国产999精品视频| 97久久久免费福利网址| 欧美精品做受xxx性少妇| 欧美国产日韩在线| 国产视频福利一区| 国产精品jvid在线观看蜜臀| 国产精品三级网站| 91精品国产91久久久久久久久| 久久久噜久噜久久综合| 最新的欧美黄色| 亚洲va欧美va国产综合久久| 欧美性xxxx极品hd欧美风情| 欧美电影第一页| 欧美另类99xxxxx| 亚洲第一区中文字幕| 亚洲成**性毛茸茸| 中文字幕国产日韩| 亚洲女人天堂网| 国产精品旅馆在线| 国产精品99一区| 亚洲精品午夜精品| 人妖精品videosex性欧美| 91精品视频在线| 日韩精品在线影院| 久久成人这里只有精品| 一本色道久久88综合日韩精品| 国产黑人绿帽在线第一区| 91高清视频免费观看| 国产视频精品在线| 欧美性做爰毛片| 久久久久久久久久久久av| 久久人人爽人人爽爽久久| 日韩av免费在线播放| 欧美性受xxxx黑人猛交| 国产精品video| 日本亚洲精品在线观看| 一区二区欧美亚洲| 国产亚洲a∨片在线观看| www.欧美精品| 7777精品视频| 亚洲日本欧美中文幕| 国产mv免费观看入口亚洲| 亚洲成人网av| 国产精品av免费在线观看| 国产91|九色| 国产suv精品一区二区三区88区| 欧美丰满少妇xxxx| 日韩欧美一区视频| 欧美日韩爱爱视频| 久久久噜噜噜久久中文字免| 欧美伊久线香蕉线新在线| 日韩免费看的电影电视剧大全| 欧美精品情趣视频| 亚洲第一页中文字幕| 国产黑人绿帽在线第一区| 狠狠躁夜夜躁久久躁别揉| 97超级碰在线看视频免费在线看| 亚洲人成自拍网站| 亚洲人成网在线播放| 欧美日韩国产va另类| 中文字幕亚洲欧美日韩高清| 6080yy精品一区二区三区| 亚洲一区二区久久| 日韩有码视频在线| 国产一区二区日韩| 国产高清在线不卡| 国产欧美精品在线播放| 久久伊人精品天天| 少妇av一区二区三区| 国产在线观看不卡| 欧美一区第一页| 久久久午夜视频| 日韩av一区在线| 日韩av在线免费看| 亚洲免费视频一区二区| 欧美性猛交xxxx免费看| 日韩精品极品视频| 色综合导航网站| 亚洲美女av电影| 国产91免费观看| 日韩视频一区在线| 美女av一区二区| 亚洲毛片在线观看.| 日韩一区二区久久久| 在线播放国产一区二区三区| 日韩一区二区三区国产|