Data set ийн мєрvvдийг шинэчлэн хадгалах
- 1. DataSet-ийн мєрvvдийг шинэчлэн хадгалах
Бидний хийж буй формын Update товчлуурын Click vзэгдлийн процедурт дараах кодыг бичье.
private void btnUpdate_Click(object sender, System.EventArgs e)
{
DataUpdate();
}
Та DataSet-ийн мєрvvдийг шинэчлэн хадгалахын тулд тухай мєрийг хайж олоод, баганууд дах
єгєгдлийг єєрчлєн, DataAdapter ба CommandBuilder объектыг байгуулан, UPDATE мэдэгдлийг
ашиглан єгєгдлийг хадгалах болно.
private void DataUpdate()
{
OleDbDataAdapter oAdapter ;
OleDbCommandBuilder oBuild ;
DataRow oDR;
string strSQL;
int intID;
string strConn;
// List Box-оос Primary Key-г авах
intID = ((PDSAListItemNumeric) (lstProducts.SelectedItem)).ID;
// Шинэчлэх мєрийг хайх
oDR = moDS.Tables["Products"].Rows.Find(intID);
// Засварлаж эхлэх
oDR.BeginEdit();
// Мєр лvv шинэ єгєгдлийг нэмэх
oDR["ProductName"] = txtName.Text;
oDR["SupplierID"] = ( (PDSAListItemNumeric) cboSupplier.SelectedItem).ID;
oDR["CategoryID"] = ( (PDSAListItemNumeric) cboCategory.SelectedItem).ID;
oDR["QuantityPerUnit"] = txtQty.Text;
oDR["UnitPrice"] = System.Convert.ToDecimal(txtPrice.Text);
oDR["UnitsInStock"] = System.Convert.ToSingle(txtInStock.Text);
oDR["UnitsOnOrder"] = System.Convert.ToSingle(txtOnOrder.Text);
oDR["ReorderLevel"] = System.Convert.ToSingle(txtReorder.Text);
oDR["Discontinued"] = System.Convert.ToBoolean(chkDisc.Checked);
// Засварлалтыг дуусгах
oDR.EndEdit();
try
{
// Холболтын тэмдэгт мєрийг авах
strConn = ConnectStringBuild();
// SQL тэмдэгт мєр
strSQL = "SELECT * FROM Products ";
// DataAdapter-ийг шинээр vvсгэх
oAdapter = new OleDbDataAdapter(strSQL, strConn);
// Adapter-аас CommandBuild vvсгэх
// Энэ нь INSERT, UPDATE, DELETE SQL-vvдийг байгуулдаг
oBuild = new OleDbCommandBuilder(oAdapter);
// Update Command объектыг авах
oAdapter.UpdateCommand = oBuild.GetUpdateCommand();
// UPDATE мэдэгдэл Adapter-аар дамжин хэрэгжинэ.
oAdapter.Update(moDS, "Products");
// DataSet-ийн єєрчлєлтvvдэд єгєгдлийн эх рvv хадгалалт хийгдснийг хэлнэ
moDS.AcceptChanges();
// Холболтыг хаах
oAdapter.UpdateCommand.Connection.Close();
// List box- ийг дахин vvсгэх
ListLoad();
}
catch (InvalidCastException e1)
{
MessageBox.Show(e1.Message );
}
}