兄弟忙了一天了,不能解决的问题,各位大哥帮帮忙

liyingsc 2003-10-21 10:26:44
以下是存储过程,这肯定没问题的:
------------------------------------------------
-- UpdateCustomer
------------------------------------------------
ALTER PROCEDURE UpdateCustomer
@custID NVARCHAR(5) = NULL,
@CoName NVARCHAR(40) = NULL,
@ContName NVARCHAR(30) = NULL,
@ContTitle NVARCHAR(30) = NULL
AS
SET XACT_ABORT ON

BEGIN TRANSACTION

-- Update customers table with new customer info
UPDATE Customers
SET CompanyName = @CoName,
ContactName = @ContName,
ContactTitle = @ContTitle
WHERE CustomerID = @custID

COMMIT TRANSACTION

RETURN 0
------------------------------------------------
以下是我要更新的代码(运行能通过,数据库(Northwind)里的数据就是不能更新,),我的QQ是:66520267,MSN:liyingsc@hotmail.com
public class DataAccess
{
private const String PKID_PARM = "@custID";
private const String CONAME_PARM = "@CoName";
private const String ContName = "@ContName";
private const String ContTitle = "@ContTitle";

private SqlDataAdapter dsCommand;
private SqlCommand updateCommand;
private string ConnectionString="data source=GZLLY;initial catalog=Northwind;user id=sa;workstation id=GZLLY";
public DataAccess()
{
dsCommand=new SqlDataAdapter();
}

public bool UpdateCustomer(DataSet ds)
{
dsCommand.UpdateCommand = GetUpdateCommand();
dsCommand.Update(ds,"customers");
//
if ( ds.HasErrors )
{
return false;
}
else
{
return true;
}
}

private SqlCommand GetUpdateCommand()
{
if ( updateCommand == null )
{
//
updateCommand = new SqlCommand("UpdateCustomer",new SqlConnection(ConnectionString));
updateCommand.CommandType = CommandType.StoredProcedure;
SqlParameterCollection sqlParams = updateCommand.Parameters;
sqlParams.Add(new SqlParameter(PKID_PARM, SqlDbType.NVarChar ,5));
sqlParams.Add(new SqlParameter(CONAME_PARM, SqlDbType.NVarChar, 40));
sqlParams.Add(new SqlParameter(ContName, SqlDbType.NVarChar, 30));
sqlParams.Add(new SqlParameter(ContTitle, SqlDbType.NVarChar, 30));
// Define the parameter mappings from the data table in the
sqlParams[PKID_PARM].SourceColumn ="CustomerID";
sqlParams[CONAME_PARM].SourceColumn ="CompanyName";
sqlParams[ContName].SourceColumn ="ContactName";
sqlParams[ContTitle].SourceColumn ="ContactTitle";
}
return updateCommand;
}
}
...全文
52 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
baogong 2003-10-21
  • 打赏
  • 举报
回复
同意楼上的.
mordern 2003-10-21
  • 打赏
  • 举报
回复
兄弟,你这样做当然不对拉
SqlDataAdapter.Update是根据DataSet里行的状态来更新的。
不用这么繁,只是更新这么做就行了:
SqlCommand sqlCom = new SqlCommand();
....
sqlCom.Connection = sqlConn;

sqlCom.Exexute();
liyingsc 2003-10-21
  • 打赏
  • 举报
回复
楼上兄弟,我试了,不行,不是哪儿的原因啊
xxdneu 2003-10-21
  • 打赏
  • 举报
回复
updatecommand 不符合更新的标准
你的"@custID"参数的SourceVersion应该设置成 Original

110,533

社区成员

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

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

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