DataAdapter 对象

属性 描述
AcceptChangesDuringFill 将 DataRow 对象置于 DataTable 对象时,是否调用 AcceptChanges 方法,默认 True
ContinueUpdateOnError 发生错误时,是否继续更新数据
DeleteCommand 用于删除数据的 Command 对象
InsertCommand 用于插入数据的 Command 对象
SelectCommand 用于查询数据的 Command 对象
UpdateCommand 用于更新数据的 Command 对象
方法 描述
Fill(...) 执行查询,并将数据填充到数据集
Update(...) 更新数据
事件 描述
FillError Fill 方法发生错误时触发
RowUpdated Update 方法完成后触发
RowUpdating Update 方法开始前触发

Fill 方法

Fill(DataSet)
Fill(DataTable)
Fill(DataSet, string srcTable)
Fill(startrec, maxrec, Tables[])
Fill(DataSet, startrec, maxrec, srcTable)

Update 方法

Update(DataSet)
Update(DataSet, srcTable)
Update(DataRows[])
Update(DataTable)
参数 描述
DataSet 数据更新的目标,DataSet 对象
srcTable 数据更新的源
DataRows 数据更新的目标,DataRow 对象数组
tableMapping 数据更新的源,TableMappings 集合

数据读取示例:

SqlDataAdapter dataadapter = new SqlDataAdapter();

DataSet dataset = new DataSet();

dataadapter.SelectCommand = command;

dataadapter.Fill(dataset);

Response.Write("<table>");

for (int r = dataset.Tables[0].Rows.Count - 1;r>=0 ; r--)

{

   Response.Write("<tr>");

   for (int c = 0; c < dataset.Tables[0].Columns.Count; c++)

   {

      Response.Write("<td>");

      Response.Write(dataset.Tables[0].Rows[r][c]);

      Response.Write("</td>");

   }

   Response.Write("</tr>");

}

dataadapter.Dispose();

dataset.Dispose();

数据更新示例1:

SqlDataAdapter dataadapter = new SqlDataAdapter();

DataSet dataset = new DataSet();

SqlCommandBuilder commandbuilder = new SqlCommandBuilder(dataadapter);

 

dataadapter.SelectCommand = command;

dataadapter.Fill(dataset);

dataset.Tables[0].Rows[0][1] = "newvalue";

dataadapter.Update(dataset);

 

dataadapter.Dispose();

dataset.Dispose();

commandbuilder.Dispose();

参数 描述
commandbuilder 用于构建更新语句的对象

数据更新示例2:

// 建立 dataadapter 对象
SqlDataAdapter dataAdpater = new SqlDataAdapter(
   "SELECT CategoryID, CategoryName FROM Categories", connection);

 

// 设置自定义的更新语句
dataAdpater.UpdateCommand = new SqlCommand(
   "UPDATE Categories SET CategoryName = @CategoryName " +
   "WHERE CategoryID = @CategoryID" , connection);

 

// 更新语句中的参数1
dataAdpater.UpdateCommand.Parameters.Add(
   "@CategoryName", SqlDbType.NVarChar, 15, "CategoryName");

 

// 更新语句中的参数2
SqlParameter parameter = dataAdpater.UpdateCommand.Parameters.Add(
  "@CategoryID", SqlDbType.Int);
parameter.SourceColumn = "CategoryID";
parameter.SourceVersion = DataRowVersion.Original;

 

// 填充数据集
DataSet dataSet = new DataSet();
dataAdpater.Fill(dataSet, "Categories");

 

// 更改数据集中的数据
DataRow row = dataSet.Tables["Categories"].Rows[0];
row ["CategoryName"] = "New Category";

 

// 更新数据集
dataAdpater.Update(dataSet, "Categories");