public static void CreateSocialGroup(string FBUID)
{
string query = "INSERT INTO SocialGroup (created_by_fbuid) VALUES (@FBUID); SELECT @@IDENTITY AS LastID";
using (SqlConnection connection = new SqlConnection(ConnectionString))
{
SqlCommand command = new SqlCommand(query, connection);
command.Parameters.AddWithValue("@FBUID", FBUID);
connection.Open();
command.ExecuteNonQuery();
}
}
Run Code Online (Sandbox Code Playgroud)
这是正确的方法吗?我如何将LastID输入变量?谢谢
gbn*_*gbn 26
OUTPUT条款?
string query = "INSERT INTO SocialGroup (created_by_fbuid)
OUTPUT INSERTED.IDCol --use real column here
VALUES (@FBUID)";
...
int lastId = (int)command.ExecuteScalar();
Run Code Online (Sandbox Code Playgroud)
如果您的服务器支持,OUTPUT clause您可以尝试使用以下服务器:
public static void CreateSocialGroup(string FBUID)
{
string query = "INSERT INTO SocialGroup (created_by_fbuid) OUTPUT INSERTED.IDENTITYCOL VALUES (@FBUID)";
using (SqlConnection connection = new SqlConnection(ConnectionString))
{
SqlCommand command = new SqlCommand(query, connection);
command.Parameters.AddWithValue("@FBUID", FBUID);
connection.Open();
var _id = command.ExecuteScalar();
}
}
Run Code Online (Sandbox Code Playgroud)
就个人而言,我会重新编写您的代码以使用参数.您可以使用InputOutput参数或Output参数.但是,在SQL中使用返回值也可以.
有关这方面的完整示例可以在MSDN上找到.
我也会使用Scope_Identity()而不是@@Identity这将确保您将显示与当前交易相关的ID.有关Scope_Identity的详细信息,请访问此处.
| 归档时间: |
|
| 查看次数: |
36980 次 |
| 最近记录: |