日韩天天综合网_野战两个奶头被亲到高潮_亚洲日韩欧美精品综合_av女人天堂污污污_视频一区**字幕无弹窗_国产亚洲欧美小视频_国内性爱精品在线免费视频_国产一级电影在线播放_日韩欧美内地福利_亚洲一二三不卡片区

注意ADO.NET中容易混淆的概念(4)_.Net教程

編輯Tag賺U幣
教程Tag:暫無Tag,歡迎添加,賺取U幣!

推薦:解析asp.net開發(fā)與web標(biāo)準(zhǔn)的沖突問題
Visual Studio .net從2003到現(xiàn)在的2008,一路走來慢慢強大從以前的vs2003能自動改亂你的html代碼到現(xiàn)在在vs2008中都能直接對html代碼進(jìn)行w3c標(biāo)準(zhǔn)驗證并提示了,非常不易。 論壇中也經(jīng)常有從事.net開發(fā)的新手朋友問一些ASP.net開發(fā)過程中與Web標(biāo)準(zhǔn)之間的沖突

DataGrid支持對DataGrid所顯示的DataTable的編輯修改,只要DataGrid的ReadOnly屬性為False,就可以在DataGrid中直接修改單元中的內(nèi)容,修改完后數(shù)據(jù)將直接反應(yīng)到此DataGrid對應(yīng)的那個DataTable的單元。

如果這個DataTable是通過vs.net的可視化數(shù)據(jù)設(shè)計器新建DataAdapter,并生成了SelectCommand、InsertCommand、UpdateCommand、DeleteCommand這四個命令,用DataAdapter的Fill方法得來的,那么事情就簡單了,修改過的DataTable你可以直接用DataAdapter的UpDate方法寫回到數(shù)據(jù)庫。下面看一下vs.net的可視數(shù)據(jù)數(shù)據(jù)器生成的InsertCommand命令:

this.sqlInsertCommand1.CommandText = @"INSERT INTO Customers(CustomerID, CompanyName, ContactName, ContactTitle, Address, City, Region, PostalCode, Country, Phone, Fax)VALUES (@CustomerID, @CompanyName, @ContactName, @ContactTitle,@Address, @City, @Region, @PostalCode, @Country, @Phone, @Fax);SELECT CustomerID, CompanyName, ContactName, ContactTitle, Address, City, Region, PostalCode, Country, Phone,Fax FROM Customers WHERE (CustomerID = @CustomerID)"; this.sqlInsertCommand1.Connection = this.sqlConnection2; this.sqlInsertCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@CustomerID", System.Data.SqlDbType.NVarChar, 5, "CustomerID")); this.sqlInsertCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@CompanyName", System.Data.SqlDbType.NVarChar, 40, "CompanyName")); this.sqlInsertCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@ContactName", System.Data.SqlDbType.NVarChar, 30, "ContactName")); this.sqlInsertCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@ContactTitle", System.Data.SqlDbType.NVarChar, 30, "ContactTitle")); this.sqlInsertCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Address", System.Data.SqlDbType.NVarChar, 60, "Address")); this.sqlInsertCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@City", System.Data.SqlDbType.NVarChar, 15, "City")); this.sqlInsertCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Region", System.Data.SqlDbType.NVarChar, 15, "Region")); this.sqlInsertCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@PostalCode", System.Data.SqlDbType.NVarChar, 10, "PostalCode")); this.sqlInsertCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Country", System.Data.SqlDbType.NVarChar, 15, "Country")); this.sqlInsertCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Phone", System.Data.SqlDbType.NVarChar, 24, "Phone")); this.sqlInsertCommand1.Parameters.Add(new System.Data.SqlClient.SqlParameter("@Fax", System.Data.SqlDbType.NVarChar, 24, "Fax"));

DataAdapter的SelectCommand是用來DataAdapter.Fill()方法來填充DataTable的,SelectCommand選擇的數(shù)據(jù)表行集將被填充到DataTable中,然后DataGrid將它顯示出來。

DataGrid在經(jīng)過編輯修改后,其對應(yīng)的DataTable中的行就可能出現(xiàn)文章上面所述的那五種狀態(tài),可能是新加的(Added),可能是修改了的(Modified),可能是刪除的(Deleted),DataAdapter.UpDate()方法將通過調(diào)用InsertCommand命令將狀態(tài)為Added的行插入到數(shù)據(jù)庫,UpdateCommand將狀態(tài)為Modified的行在數(shù)據(jù)庫中做修改,DeleteCommand將狀態(tài)為Deleted的行在數(shù)據(jù)庫真正的刪除。

如果不是通過vs.net的可視化數(shù)據(jù)設(shè)計器新建DataAdapter,沒有自動生成SelectCommand、InsertCommand、UpdateCommand、DeleteCommand這四個命令,那么就可能需要自己寫InsertCommand、UpdateCommand、DeleteCommand命令,有一種情況就是當(dāng)SelectCommand至少返回一個主鍵列或唯一的列時,可以通過SqlCommandBuilder來自動根據(jù)SelectCommand命令來自動生成另外三個更新命令,例如:

SqlConnection myConn = new SqlConnection(myConnection);

SqlDataAdapter myDataAdapter = new SqlDataAdapter();

myDataAdapter.SelectCommand = new SqlCommand(mySelectQuery, myConn);

//建立DataAdapter的SelectCommand命令

SqlCommandBuilder custCB = new SqlCommandBuilder(myDataAdapter);

//建立此DataAdapter的CommandBuilder,

//這樣系統(tǒng)就會給此DataAdapter自動生成

InsertCommand、UpdateCommand、DeleteCommand三個命令。

否則,要用DataAdapter.UpDate()方法更新數(shù)據(jù)庫就要自己寫InsertCommand、UpdateCommand、DeleteCommand這三個命令,可以參考上面給出的vs.net自動生成的InsertCommand命令的寫法。

◆ 數(shù)據(jù)綁定的同步

WinForm中很多控件都可以與數(shù)據(jù)源綁定,綁定又分兩種情況:

簡單數(shù)據(jù)綁定

簡單數(shù)據(jù)綁定指將一個控件綁定到單個數(shù)據(jù)元素(如數(shù)據(jù)集表的列中的值)的能力。這是用于控件,如 TextBox 控件或 Label 控件(即通常只顯示單個值的控件)的典型綁定類

分享:ASP.NET程序設(shè)計的10大技巧
1. 在使用Visual Studio .NET時,除直接或非引用的對象外,不要使用缺省的名字 .NET帶來的好處之一是所有的源代碼和配置文件都是純文本文件,能夠使用Notepad或WordPad等任意的文本編輯器進(jìn)行編輯。如果不愿意,我們并非一定要使用Visual Studio .NET作為集

來源:模板無憂//所屬分類:.Net教程/更新時間:2009-06-11
相關(guān).Net教程