我用XSD数据集,比如说数据表结构如下:
CREATE TABLE [dbo].[test] (
[pKId] [int] NOT NULL ,
[name] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[test] ADD
CONSTRAINT [PK_test] PRIMARY KEY CLUSTERED
(
[pKId]
) ON [PRIMARY]
GO程序如下:
TestDS data = 一个函数,根据pKId查询返回的TestDS (XSD数据集);
DataRow row = data.Tables[0].Rows[0];
row["pKId"] = 1;
row["name"] = "Test"
data.AcceptChanges();strSql = "update test set pKId=@pKId,name=@name where pKId =1";
da.UpdateCommand = new SqlCommand(strSql);
da.UpdateCommand.Connection = sqlConn;
da.UpdateCommand.CommandText = strSql;da.UpdateCommand.Parameters.Add("@pKId",SqlDbType.Int).SourceColumn = "pKId";
da.UpdateCommand.Parameters.Add("@namepKId",SqlDbType.NVarChar,50).SourceColumn = "name";
if (da.Update(data, data.Tables[0].TableName) != 1) {
sError += "信息 更新失败(@0)!" + strSql;
}
大概就是这样,可是我怎么调试 更新数,怎么也不等于1,数据库的数据也没有更新。
CREATE TABLE [dbo].[test] (
[pKId] [int] NOT NULL ,
[name] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[test] ADD
CONSTRAINT [PK_test] PRIMARY KEY CLUSTERED
(
[pKId]
) ON [PRIMARY]
GO程序如下:
TestDS data = 一个函数,根据pKId查询返回的TestDS (XSD数据集);
DataRow row = data.Tables[0].Rows[0];
row["pKId"] = 1;
row["name"] = "Test"
data.AcceptChanges();strSql = "update test set pKId=@pKId,name=@name where pKId =1";
da.UpdateCommand = new SqlCommand(strSql);
da.UpdateCommand.Connection = sqlConn;
da.UpdateCommand.CommandText = strSql;da.UpdateCommand.Parameters.Add("@pKId",SqlDbType.Int).SourceColumn = "pKId";
da.UpdateCommand.Parameters.Add("@namepKId",SqlDbType.NVarChar,50).SourceColumn = "name";
if (da.Update(data, data.Tables[0].TableName) != 1) {
sError += "信息 更新失败(@0)!" + strSql;
}
大概就是这样,可是我怎么调试 更新数,怎么也不等于1,数据库的数据也没有更新。
strSql = "update test set pKId=@pKId,name=@name where pKId =1";
你的@name是string啊,应该类似于:
strSql = "update test set pKId=@pKId,name='"+@name+"'where pKId =1";
--示例:(name是字符型)update test set name=Jack where pKId =1
--错误update test set name='Jack' where pKId =1
--正确