gpt4 book ai didi

c# - 使用 C# 在 SQL Server 中执行插入命令并返回插入的 Id

转载 作者:太空宇宙 更新时间:2023-11-03 21:02:57 25 4
gpt4 key购买 nike

我正在使用 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'

最佳答案

  1. 您没有转换,您正在将列名称别名为 int,

    使用:SELECT CAST(scope_identity() AS int)

  2. rowCount 是装箱整数。更改返回语句和返回类型。示例:

return (int)rowCount;

这将是您需要的 ID。

引用:SqlCommand.ExecuteScalar MSDN

关于c# - 使用 C# 在 SQL Server 中执行插入命令并返回插入的 Id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43454323/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com