gpt4 book ai didi

c# - 使用 SQL Server 插入 C# 后返回 id

转载 作者:太空狗 更新时间:2023-10-30 01:03:28 29 4
gpt4 key购买 nike

我知道这个问题已经多次出现在这个网站上,但我无法让我的代码正常工作。

我有一个 Insert 语句,我需要在我的 asp.net 页面上从该语句中获取 id。

我得到了返回值 0

public int newid { get; set; }

public void CreateAlbum(string _titel, string _name, string _thumb, int _userid)
{
objCMD = new SqlCommand(@"INSERT INTO tblFotoalbum
(fldAlbumHead, fldAlbumName, fldAlbumThumb, fldUserID_FK)
VALUES
(@titel, @name, @thumb, @userid);

SET @newid = SCOPE_IDENTITY()");

objCMD.Parameters.AddWithValue("@titel", _titel);
objCMD.Parameters.AddWithValue("@name", _name);
objCMD.Parameters.AddWithValue("@thumb", _thumb);
objCMD.Parameters.AddWithValue("@userid", _userid);
objCMD.Parameters.AddWithValue("@newid", newid);

objData.ModifyData(objCMD);
}

最佳答案

试试这个:

public int CreateAlbum(string _titel, string _name, string _thumb, int _userid)
{
// define return value - newly inserted ID
int returnValue = -1;

// define query to be executed
string query = @"INSERT INTO tblFotoalbum (fldAlbumHead, fldAlbumName, fldAlbumThumb, fldUserID_FK)
VALUES (@titel, @name, @thumb, @userid);
SELECT SCOPE_IDENTITY();"

// set up SqlCommand in a using block
using (objCMD = new SqlCommand(query, connection))
{
// add parameters using regular ".Add()" method
objCMD.Parameters.Add("@titel", SqlDbType.VarChar, 50).Value = _titel;
objCMD.Parameters.Add("@name", SqlDbType.VarChar, 100).Value = _name;
objCMD.Parameters.Add("@thumb", SqlDbType.VarChar, 100).Value = _thumb;
objCMD.Parameters.Add("@userid", SqlDbType.VarChar, 25).Value = _userid;

// open connection, execute query, close connection
connection.Open();
object returnObj = objCMD.ExecuteScalar();

if(returnObj != null)
{
int.TryParse(returnObj.ToString(), out returnValue);
}

connection.Close();
}

// return newly inserted ID
return returnValue;
}

不确定如何将它与 objData 类集成 - 也许您需要为此向该 DAL 类添加一个新方法。

查看 Can we stop using AddWithValue() already?并停止使用 .AddWithValue() - 它会导致意外和令人惊讶的结果......

关于c# - 使用 SQL Server 插入 C# 后返回 id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28627105/

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