我正在使用 C# 将一些值插入到 SQL Server 表中。实际上我想插入值并返回最后插入记录的“ID”。我使用以下代码:
string name = txt_name.Text.Trim();
string gender = Gender.Text.Trim();
string citizen = Citizen.Text.Trim();
int IdNo = Convert.ToInt32(idnumber.Text);
BUSSINESSACCESS.SENDMESSAGES send = new BUSSINESSACCESS.SENDMESSAGES();
DataSet dt = send.insertvoucher(name, gender, citizen, IdNo);
业务层
public DataSet insertvoucher(string name, string gender, string citizen, int IdNo)
{
SqlParameter[] par = {
new SqlParameter("@Name", name),
new SqlParameter("@Citizen", citizen),
new SqlParameter("@Emiratesidno", IdNo),
new SqlParameter("@gender", gender),
};
var rowCount = SHJCSQLHELPER.ExecuteScalar(CONNECTIONSTRING, CommandType.StoredProcedure, "[INSERTVOUCHER]", par);
return rowCount;
// return SHJCSQLHELPER.ExecuteDataset(CONNECTIONSTRING, CommandType.StoredProcedure, "[INSERTVOUCHER]", par);
//string mn = "";
}
存储过程
-- Insert statements for procedure here
Insert into Usertable(Name, Citizen, Emiratesidno, gender)
values (@Name, @Citizen, @Emiratesidno, @gender)
SELECT scope_identity() AS int
我正在获取变量 rowcount 中的值,但我无法返回变量 rowcount,因为它在说
Cannot implicitly convert type 'object' to 'system.data.dataset'
最佳答案
您没有转换,您正在将列名称别名为 int,
使用:
SELECT CAST(scope_identity() AS int)
rowCount
是装箱整数。更改返回语句和返回类型。示例:
return (int)rowCount;
这将是您需要的 ID。
关于c# - 使用 C# 在 SQL Server 中执行插入命令并返回插入的 Id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43454323/