دو روش عمومی برای درج کردن، بروزرسانی و حذف داده وجود دارد. روش اول، شامل ایجاد متدهایی است که وقتی فراخوانی میشوند یک دستور Insert, Update و یا Delete ایجاد میکنند که بر روی یک رکورد از پایگاه داده اثر میگذارد.
روش دیگر؛ بروزرسانی یک DataSet, DataTable و یا مجموعهای از DataRows است که در یکبار فراخوانی متد انجام میشود. در این روش، توسعه دهنده DataRows را در یک DataTable درج میکند، بروزمیرساند و یا تغییر میدهد و سپس آنها را به یک متد بروزرسانی ارسال میکند. سپس این متد DataRows که در دریافت کرده را بررسی و تعیین میکند که کدام یک اضافه شده است، تغییر کرده است و یا حذف شده است و پس از آن برای هر رکورد یک دستور مناسب پایگاه داده صادر میکند.
TableAdapter به طور پیش فرض از روش بروزرسانی بستهای (روش دوم) استفاده میکند، اما از روش تاثیر مستقیم روی پایگاه داده (روش اول) نیز پشتیبانی میکند. زمانی که گزینه "Generate Insert, Update, and Delete statements" را از Advanced Properties هنگام ایجاد TableAdapter انتخاب میکنیم، ProductsTableAdapter دارای یک متد Update() میشود که روش بروزرسانی بستهای را ایجاد میکند. هر دو روش تغییر داده از مشخصههای InsertCommand, UpdateCommand, DeleteCommand مربوط به TableAdapter برای صدور دستورات insert, update, delete به پایگاه داده استفاده میکنند. شما میتوانید مشخصههای InsertCommand, UpdateCommand, DeleteCommand را با کلیک کردن روی TableAdapter در محیط طراحی DataSet و مراجعه به پنجره Properties آن، بررسی کنید و تغییر دهید.
برای امتحان کردن و یا تغییر دادن هر کدام از مشخصههای دستورات پایگاه داده، روی زیرمشخصه CommandText کلیک کرده و Query Builder را اجرا کنید.
کدهای نمونه زیر نشان میدهد که چگونه روش بروزرسانی بستهای را برای دو برابر کردن قیمت محصولاتی که تولید آنها متوقف نشده و 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);
کدهای زیر نشان میدهند که چگونه از روش مستقیم روی پایگاه داده برای حذف یک محصول خاص، سپس بروزرسانی دیگری و اضافه کردن یک محصول جدید استفاده کنیم:
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);