Database.UpdateDataSet

刚开始时尝试用以下代码来更新DataSet:

Database db = DatabaseFactory.CreateDatabase();

string strSql = "Select ProductID, ProductName, CategoryID, UnitPrice, LastUpdate From Products";
DbCommand command 
= db.GetSqlStringCommand(strSql);
DataSet ds 
= db.ExecuteDataSet(command);


DbCommand insertCommand 
= db.GetStoredProcCommand("AddProduct");
db.AddInParameter(insertCommand, 
"ProductName", DbType.String, DataRowVersion.Current);
db.AddInParameter(insertCommand, 
"CategoryID", DbType.Int32, DataRowVersion.Current);
db.AddInParameter(insertCommand, 
"UnitPrice", DbType.Currency, DataRowVersion.Current);

DbCommand deleteCommand 
= db.GetStoredProcCommand("DeleteProduct");
db.AddInParameter(deleteCommand, 
"ProductID", DbType.Int32, DataRowVersion.Current);

DbCommand updateCommand 
= db.GetStoredProcCommand("UpdateProduct");
db.AddInParameter(updateCommand, 
"ProductID", DbType.Int32, DataRowVersion.Current);
db.AddInParameter(updateCommand, 
"ProductName", DbType.String, DataRowVersion.Current);
db.AddInParameter(updateCommand, 
"LastUpdate", DbType.DateTime, DataRowVersion.Current);

ds.Tables[
0].Rows.Add(new object[] { DBNull.Value, "Added from program"1326 });
db.UpdateDataSet(ds, ds.Tables[
0].TableName, insertCommand, updateCommand, deleteCommand, UpdateBehavior.Standard);

但是失败了,后来仔细比较QuickStart中的代码后才发现应该使用Database.AddInParameter(DbCommand command,string name,DbType dbType,string sourceColumn,object value)这个方法,查了一下帮助文档,对比如下:

1.public void AddInParameter(DbCommand command,string name,DbType dbType,object value)
Parameter
  command:The command to add the parameter;
  name:The name of the parameter;
  dbType:One of the DbType values;
  values:The value of the parameter;

2.public void AddInParameter(DbCommand command,string name,DbType dbType,string sourceColumn,object value)
Parameter
  command:The command to add the parameter;
  name:The name of the parameter;
  dbType:One of the DbType values;
  sourceColumn:The name of the source column mapped to the DataSet and used for loading or returning the value;
  values:The value of the parameter;
posted @ 2006-11-03 10:51  Jailu  阅读(2391)  评论(0)    收藏  举报