介紹了RemoveAt與delete的差別(完成於樂透專案)
VS有類似SSMS的功能,位置在檢視>伺服器總管
重新介紹了dataAdapter的下面四個指令(屬性),前面有提到
都是用來對SQL下指令的
下面是remove跟delete的按鈕功能實現,以及findBy還有RowState
private void button4_Click(object sender, EventArgs e)
{
NorthwindDataSet.ProductsRow objProd =
ds.Products.FindByProductID(80);
ds.Products.Rows.Remove(objProd);
}
private void button5_Click(object sender, EventArgs e)
{
NorthwindDataSet.ProductsRow objProd =
ds.Products.FindByProductID(80);
this.Text = objProd.RowState.ToString();
objProd.Delete();
button5.Text = objProd.RowState.ToString();
}
獲取當前數值
private void button6_Click(object sender, EventArgs e)
{
//NorthwindDataSet.ProductsRow objProd =
// ds.Products.FindByProductID(1);
//button6.Text = objProd.ProductName;
// DataTable dt = ds.Tables[0];
DataTable dt = ds.Tables["Products"];
DataRow dr = dt.Rows[0];
// string s = dr["ProductName"].ToString();
// string s = dr[1].ToString();
// button6.Text = s;
int qty = Convert.ToInt32(dr["UnitsInStock"]);
button6.Text = qty.ToString();
}
獲取原值與現值
private void button6_Click(object sender, EventArgs e)
{
int num = int.Parse(bs.Position.ToString());
DataTable dt = ds.Tables["Products"];
DataRow dr = dt.Rows[num];
int qty = Convert.ToInt32(dr["UnitsInStock"]);
textBox4.Text = qty.ToString();
textBox3.Text =
dr["UnitsInStock", DataRowVersion.Original].ToString();
}
TabControl:放置新功能分頁
關於如何利用dataset的GetChanges獲得變更紀錄:
private void button7_Click(object sender, EventArgs e)
{
//DataSet dsBak = ds.GetChanges();
//上面這個方法比較不好,因為沒有指定為北風DataSet,之後有可能會找不到Products
NorthWindDataSet dsBak = ds.GetChanges() as NorthWindDataSet;
//這邊指定為北風DataSet,才會取得Products表
dataGridView2.DataSource = dsBak;
dataGridView2.DataMember = "Products";
}