Database.UpdateDataSet
刚开始时尝试用以下代码来更新DataSet:
 Database db = DatabaseFactory.CreateDatabase();
Database db = DatabaseFactory.CreateDatabase();
 string strSql = "Select ProductID, ProductName, CategoryID, UnitPrice, LastUpdate From Products";
string strSql = "Select ProductID, ProductName, CategoryID, UnitPrice, LastUpdate From Products"; DbCommand command = db.GetSqlStringCommand(strSql);
DbCommand command = db.GetSqlStringCommand(strSql); DataSet ds = db.ExecuteDataSet(command);
DataSet ds = db.ExecuteDataSet(command);

 DbCommand insertCommand = db.GetStoredProcCommand("AddProduct");
DbCommand insertCommand = db.GetStoredProcCommand("AddProduct"); db.AddInParameter(insertCommand, "ProductName", DbType.String, DataRowVersion.Current);
db.AddInParameter(insertCommand, "ProductName", DbType.String, DataRowVersion.Current); db.AddInParameter(insertCommand, "CategoryID", DbType.Int32, DataRowVersion.Current);
db.AddInParameter(insertCommand, "CategoryID", DbType.Int32, DataRowVersion.Current); db.AddInParameter(insertCommand, "UnitPrice", DbType.Currency, DataRowVersion.Current);
db.AddInParameter(insertCommand, "UnitPrice", DbType.Currency, DataRowVersion.Current);
 DbCommand deleteCommand = db.GetStoredProcCommand("DeleteProduct");
DbCommand deleteCommand = db.GetStoredProcCommand("DeleteProduct"); db.AddInParameter(deleteCommand, "ProductID", DbType.Int32, DataRowVersion.Current);
db.AddInParameter(deleteCommand, "ProductID", DbType.Int32, DataRowVersion.Current);
 DbCommand updateCommand = db.GetStoredProcCommand("UpdateProduct");
DbCommand updateCommand = db.GetStoredProcCommand("UpdateProduct"); db.AddInParameter(updateCommand, "ProductID", DbType.Int32, DataRowVersion.Current);
db.AddInParameter(updateCommand, "ProductID", DbType.Int32, DataRowVersion.Current); db.AddInParameter(updateCommand, "ProductName", DbType.String, DataRowVersion.Current);
db.AddInParameter(updateCommand, "ProductName", DbType.String, DataRowVersion.Current); db.AddInParameter(updateCommand, "LastUpdate", DbType.DateTime, DataRowVersion.Current);
db.AddInParameter(updateCommand, "LastUpdate", DbType.DateTime, DataRowVersion.Current);
 ds.Tables[0].Rows.Add(new object[] { DBNull.Value, "Added from program", 13, 26 });
ds.Tables[0].Rows.Add(new object[] { DBNull.Value, "Added from program", 13, 26 }); db.UpdateDataSet(ds, ds.Tables[0].TableName, insertCommand, updateCommand, deleteCommand, UpdateBehavior.Standard);
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;
 
                    
                 ds.Tables[
ds.Tables[
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号