gpt4 book ai didi

c# - 使用 SQL 命令从数据库中读取最后插入的 UID

转载 作者:行者123 更新时间:2023-11-30 20:46:02 25 4
gpt4 key购买 nike

我有两个表格,如下图所示,表格上还有一些示例数据。

enter image description here

我想在我的项目中实现的目标如下。我的项目中有 4 个窗口窗体。第一个有两个按钮的表单

enter image description here

New User 有一个点击事件-

private void button1_Click(object sender, EventArgs e)
{
NewUser nu = new NewUser();
nu.Show();

}

单击后,会弹出 NewUser 表单 enter image description here

计划是在此处为 Users Table 添加数据,然后单击 Save and Proceed(现在我使用默认的 Save 按钮在 NAV 栏上),它将从 Users Table 中获取 UID 并将其添加到列 UID 下(这是 Address Table 中的外键) 并打开表单 FormAddress,我可以在其中输入表的数据。 enter image description here

Save and Proceed 的点击事件是--

private void button1_Click(object sender, EventArgs e)
{
FormAddress ad = new FormAddress();
ad.Show();
getdata();
}

经过研究,我了解到我需要使用 SCOPE_IDENTITY 从上次数据插入中获取 UID 的值,并将其传递到下一个表单。所以我创建了一个方法 getdata() 如下,并将其添加到按钮事件 Save and Proceed

我试过的代码是

private void getdata()
{

SqlConnection sqlConnection1 = new SqlConnection(@"mycon string is here;" + "Initial Catalog=Stack;Integrated Security=YES");
SqlCommand cmd = new SqlCommand();
SqlDataReader reader;

cmd.CommandText = "SELECT * FROM Users";
cmd.CommandType = CommandType.Text;
cmd.Connection = sqlConnection1;

sqlConnection1.Open();

reader = cmd.ExecuteReader();
// Data is accessible through the DataReader object here.

cmd.CommandText = "SCOPE_IDENTITY();";

sqlConnection1.Close();
}

我只是无法集中精力思考如何获取 SCOPE_IDENTITY 并使其发挥作用。在我被否决之前请问我。我会根据需要回复并回复/进行更改。我已经压缩了项目和 SQL 服务器文件 HERE如果有人想下载它们来运行和测试。我使用过 SQL Server 2014 和 Visual Studio 2013。

最佳答案

如果您尚未在该连接上执行 INSERT,则 SCOPE_IDENTITY() 未定义。您无法提前显示新的IDENTITY 值,因为大多数数据库都是多用户的 - 因此这个值无法知道,直到您实际执行 INSERT。显示“可能会是这个”值会产生误导——例如,用户可能会写下它或在与某人交流时使用它。您可以在该值存在于数据库中之后显示它。

但是:当您输入INSERT 时,您可以立即 简单地查询SCOPE_IDENTITY() 以查看值是什么。最近,you can use the OUTPUT clause of an INSERT operation - 更简单,只有一组 SQL 操作,并且它适用于多行:全部获胜。

关于c# - 使用 SQL 命令从数据库中读取最后插入的 UID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27487930/

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