中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ASP.NET 2.0中如何進行插入,更新和刪除數據

發布時間:2021-11-26 17:43:58 來源:億速云 閱讀:174 作者:柒染 欄目:編程語言

ASP.NET 2.0中如何進行插入,更新和刪除數據,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

ASP.NET 2.0數據教程第四步:插入,更新和刪除數據

ASP.NET 2.0中常用的插入,更新和刪除數據的模式有兩種。***種模式,我稱之為DB直接模式,涉及的方法被調用時,會向數據庫里發出一個INSERT, 或UPDATE,或DELETE命令,這個命令只對單個數據庫記錄做操作。象這樣的方法一般接受一系列對應于插入,更新或刪除的值的標量參數(譬如整數,字符串,布爾值,日期時間等)。譬如,用這個模式來操作Products表的話,刪除方法會接受一個整數參數,代表所需要刪除的記錄的ProductID,而插入方法則會接受一個對應于ProductName的字符串,對應 于UnitPrice的decimal值,對應于UnitsOnStock的整數等等。

ASP.NET 2.0中如何進行插入,更新和刪除數據

圖 21: 每個插入,更新,和刪除請求都被立刻發送到數據庫

另外一個模式,我稱之為批更新模式,可以在一個方法調用里更新整個DataSet,或者整個DataTable,或 者一個DataRow集合。在這個模式里,開發人員在一個DataTable中刪除,插入,修改DataRow,然后把這 些DataRow或整個DataTable傳給一個更新方法。然后這個方法會輪循傳入的DataRow們,通過DataRow的RowState屬 性屬性來決定這些DataRow是否被改動過,或是新記錄,或是被刪除的記錄,然后為每個記錄發出合適的數據庫命令。

ASP.NET 2.0中如何進行插入,更新和刪除數據

圖 22: 在Update 方法調用之后,所有的變動都與數據庫同步了

在ASP.NET 2.0默認情形下,TableAdapter采用批更新模式,但也支持DB直接模式。因為我們在創建我們的TableAdapter時的高級選項中選擇了“生成插入,更新,和刪除語句” 這個選項,ProductsTableAdapter 包含了一個 Update()方法,該方法實現了批更新模式。具體地說,TableAdapter包含了一個Update() 方法,可以傳入一個強類型 的DataSet,或者一個強類型的DataTable,或者一個和多個DataRow。假如你在一開始創建TableAdapter時的選項中沒有清除“生成DB直接方法(GenerateDBDirectMethods)”復選框的話,DB直接模 式也會通過Insert(),Update()和Delete()方法來實現。

這兩種數據修改模式都使用了TableAdapter的InsertCommand,UpdateCommand, 和DeleteCommand屬性來向數據庫發出對應的INSERT,UPDATE和DELETE命令。你可以在DataSet設計器里點擊TableAdapter,然后在屬性窗口查看和改 動InsertCommand,UpdateCommand, 和DeleteCommand屬性。(確認你選擇了TableAdapter,并且ProductsTableAdapter對象是屬性窗口中下拉框里被選中的項)

ASP.NET 2.0中如何進行插入,更新和刪除數據

圖23: TableAdapter包含InsertCommand,UpdateCommand, 和DeleteCommand等屬性

想查看或改動這些數據庫命令的屬性的話,點擊CommandText子屬性,這會啟動對應的查詢生成器。

ASP.NET 2.0中如何進行插入,更新和刪除數據

圖 24: 在查詢生成器里配置插入,更新,刪除語句

下面的編碼例子示范了如何使用批更新模式來把沒被終止的,且庫存等于或少于25個單元的產品的價格加倍:

NorthwindTableAdapters.ProductsTableAdapter    productsAdapter =    new NorthwindTableAdapters.ProductsTableAdapter();   // For each product, double its price if it is not discontinued    and  // there are 25 items in stock or less  Northwind.ProductsDataTable products = productsAdapter.GetProducts();  foreach (Northwind.ProductsRow product in products)     if (!product.Discontinued && product.UnitsInStock    <  = 25)        product.UnitPrice *= 2;   // Update the products  productsAdapter.Update(products);

下面的編碼示范如何使用DB直接模式刪除一個產品,更新一個產品,然后添加一個新的產品:

C#

NorthwindTableAdapters.ProductsTableAdapter    productsAdapter = new    NorthwindTableAdapters.ProductsTableAdapter();   // Delete the product with ProductID 3  productsAdapter.Delete(3);   // Update Chai (ProductID of 1), setting the UnitsOnOrder to    15  productsAdapter.Update("Chai", 1, 1, "10 boxes x 20 bags",    18.0m, 39, 15, 10, false, 1);   // Add a new product  productsAdapter.Insert("New Product", 1, 1,    "12 tins per carton", 14.95m, 15, 0, 10, false);

創建自定義的插入,更新,刪除方法

用DB直接法生成的Insert(), Update(),和Delete()方法有時 候會感覺有點不方便,特別是當數據表有許多字段的時候。看一下前面這個編碼例子,沒有IntelliSense的幫助的話,不是很清楚Products表的哪個字段對應Update()和Insert()方法中的哪個輸入參數。有時候我們只要更新一到二個字 段或者需要一個自定義的Insert()方法,這個方法需要返回剛插入的記錄 的IDENTITY(自增)的字段值。

要創建這樣的自定義方法,回到DataSet設計器。在TableAdapter上按右鼠標,選擇“添加查詢”,然后回 到TableAdapter配置向導。在第二屏上,我們可以指明要生成的查詢的類型。讓我們生成一個添加新 的product(產品)記錄,然后返回新添加記錄的ProductID值的方法。因此,選擇生成一個插入(INSERT)型查詢。

ASP.NET 2.0中如何進行插入,更新和刪除數據

圖25: 創建一個給Products表添加新記錄的方法

下一個屏顯示InsertCommand的CommandText屬性。在查詢語句后面,增添一個SELECT SCOPE_IDENTITY()的查詢,這查詢將返回當前同一個操作范圍內插 入IDENTITY字段的***那個identity 值。(詳見技術文檔中關 于SCOPE_IDENTITY()的內容以及為什么你應該http://weblogs.sqlteam.com/travisl/archive/2003/10/29/405.aspx)。確認在添加SELECT語句前,你在INSERT語句后面添一個分號 。

ASP.NET 2.0中如何進行插入,更新和刪除數據

圖26: 增添查詢返回SCOPE_IDENTITY()值

***,把這個新方法命名為InsertProduct。

ASP.NET 2.0中如何進行插入,更新和刪除數據

圖 27:放方法名字設成InsertProduct

當你返回DataSet設計器時,你將看到ProductsTableAdapter多了一個新的方法,InsertProduct。如果對應Products表的每個字段,這個新的方法沒有對應的參數的話,非常可能的原因是,你忘了給INSERT語句的結尾添加一個分號(semi-colon)。重新配 置InsertProduct方法,確認在INSERT和SELECT語句間有個分號。

在ASP.NET 2.0的默認情形下,插入方法調用的是非查詢(non-query)方法,意即,他們只返回受影響的記錄數。但是,我們想要讓InsertProduct方法返回一個查詢返回的值,而不是受影響的記錄數。這可以把InsertProduct方法的ExecuteMode屬性改成Scalar(標量)來實現。

ASP.NET 2.0中如何進行插入,更新和刪除數據

圖 28:把ExecuteMode屬性改成Scalar

下面的編碼示范如何使用這個新的InsertProduct方法:

C#

NorthwindTableAdapters.ProductsTableAdapter    productsAdapter = new    NorthwindTableAdapters.ProductsTableAdapter();   // Add a new product  int new_productID =    Convert.ToInt32(productsAdapter.InsertProduct("New    Product", 1, 1, "12 tins per carton",    14.95m, 10, 0, 10, false));   // On second thought, delete the product  productsAdapter.Delete(new_productID);

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

台北市| 伊金霍洛旗| 休宁县| 安新县| 邛崃市| 府谷县| 珲春市| 衡山县| 虞城县| 凤庆县| 恩施市| 平和县| 泰来县| 介休市| 本溪| 宜君县| 湘潭市| 赣榆县| 江都市| 城步| 荆门市| 海南省| 科技| 友谊县| 成都市| 灵石县| 揭东县| 会泽县| 拜城县| 柳林县| 遂川县| 慈利县| 红河县| 荔波县| 富川| 留坝县| 武穴市| 章丘市| 龙口市| 凤阳县| 棋牌|