使用DataSet與DataAdapter對數據庫進行操作

时间:2022-03-12 14:01:53

1.定義連接字符串

 var source = "server=(local); integrated security=SSPI; database=test";
var conn = new SqlConnection(source);

2.構架Tables

Tables的構架是由Columns支撐的,即定義一張表需要說明清楚這張表包含有哪些列,這些列的屬性是什麼?例如定義一張Users表,則需要說明Users表包含的列(Id,Name,Age),以及列的屬性,如Id為主鍵,是int型,不能為空等等。

Tables對象由DataTable類聲明;

Columns對象由DataColumn聲明;

DataTable.Columns中的Add()方法提供了向Datatable添加列的方法;

 DataTable Users = new DataTable("Users");
Users.Columns.Add(new DataColumn("Id", typeof(int)));
Users.Columns.Add(new DataColumn("Name", typeof(string)));
Users.Columns.Add(new DataColumn("Age", typeof(int)));
Users.PrimaryKey = new DataColumn[] {Users.Columns["Id"]};

第五行聲明主鍵為Id列;

3.構建DataSet

 DataSet ds = new DataSet("Users");
ds.Tables.Add(Users);

4.填充DataSet對象

 SqlDataAdapter da = new SqlDataAdapter(“SELECT * FROM _Users”, conn);
da.Fill(ds, "Users");

聲明名為“UserSet”的DataSet對象ds;

使用SqlDataAdapter(數據適配器)讀取數據;

使用SqlDataAdapter的Fill()方法將數據填充至ds中的Table中,並將Table命名為“Users”;

現在只需要對DataSet進行操作然後更新到數據庫便可完成數據操作。

5.將DataSet更新到數據庫

 SqlCommandBuilder thisBuilder = new SqlCommandBuilder(da);
da.Update(ds, "Users");

二、數據操作

1.INSERT

 Users.Rows.Add(new object[] { user.Id, user.Name, user.UserName, user.Password, user.Score });

2.UPDATE

 foreach (DataRow row in Users.Rows)
{
if ("Amily" == (string)row["Name"])
{
row["Age"] = ;
}
}

3.DELETE

 foreach (DataRow row in Users.Rows)
{
if (“Bob” == (string)row[])
{
row.Delete();
}
}