企业库更新强类型DATASET所遇到的问题!

C2K 2006-11-11 05:16:41
更新代码如下:
SqlDatabase db = new SqlDatabase(this.myConfig.GetConnectionStringByDatabaseName(ApplicationConfiguration.UsingDatabaseName));

DbCommand newCommand = db.GetStoredProcCommand("NewDoc");
db.AddInParameter(newCommand, "GoodsID", SqlDbType.NVarChar, DataRowVersion.Current);
db.AddInParameter(newCommand, "GoodsCount", SqlDbType.Int, DataRowVersion.Current);
db.AddInParameter(newCommand, "aMoney", SqlDbType.Money, DataRowVersion.Current);
db.AddInParameter(newCommand, "DocID", SqlDbType.NVarChar, DataRowVersion.Current);

DbCommand deleteCommand = db.GetStoredProcCommand("DeleteDoc");
db.AddInParameter(deleteCommand, "IDs", SqlDbType.Int, DataRowVersion.Current);

DbCommand updateCommand = db.GetStoredProcCommand("UpdateDoc");
db.AddInParameter(updateCommand, "IDs", SqlDbType.Int, DataRowVersion.Current);
db.AddInParameter(updateCommand, "GoodsID", SqlDbType.NVarChar, DataRowVersion.Current);
db.AddInParameter(updateCommand, "GoodsCount", SqlDbType.Int, DataRowVersion.Current);
db.AddInParameter(updateCommand, "aMoney", SqlDbType.Money, DataRowVersion.Current);
db.AddInParameter(updateCommand, "DocID", SqlDbType.NVarChar, DataRowVersion.Current);

int rowsAffected = db.UpdateDataSet(refdsdetailIntoWHDoc, tableName, newCommand, updateCommand,
deleteCommand, UpdateBehavior.Standard);

return rowsAffected;



在SQL SERVER2005的表中看到的数据是这样的:

IDs GoodsID GoodsCount aMoney DocID
1 Current 512 512.00000 Current
2 Current 512 512.00000 Current
3 Current 512 512.00000 Current
4 Current 512 512.00000 Current
5 Current 512 512.00000 Current
6 Current 512 512.00000 Current





问一下,怎么都会这样的数据的?问题在哪里呢?谢谢!
...全文
149 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
C2K 2006-11-13
  • 打赏
  • 举报
回复
谢谢楼上的这位朋友!!!原来是这样的,现在明白了!
北京的雾霾天 2006-11-13
  • 打赏
  • 举报
回复
楼主参见下在的代码:
SqlDataAdapter dataAdpater = new SqlDataAdapter("SELECT CategoryID, CategoryName FROM Categories", connection);

dataAdpater.UpdateCommand = new SqlCommand("UPDATE Categories SET CategoryName = @CategoryName " +"WHERE CategoryID = @CategoryID" , connection);

dataAdpater.UpdateCommand.Parameters.Add("@CategoryName", SqlDbType.NVarChar, 15, "CategoryName");

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");
北京的雾霾天 2006-11-13
  • 打赏
  • 举报
回复
DataRowVersion.Current是表示状态,
而在楼主的代码中放在参数的位置实际上是值的位置,
而这个值的字符串形式是Current
数据的形式是512,
所以楼主存到数据库里的就会是这两个值了,而不是楼主想要的值.
C2K 2006-11-13
  • 打赏
  • 举报
回复
再顶一次就放弃了
C2K 2006-11-12
  • 打赏
  • 举报
回复
怎么都没人的呢
C2K 2006-11-12
  • 打赏
  • 举报
回复
顶一下,大家帮帮忙吧.

110,526

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧