LINQ to SQL存储过程插入
本文关键字:插入 存储过程 SQL to LINQ | 更新日期: 2023-09-27 17:58:44
Hi我有以下存储过程:
create procedure dbo.AddNewUser
(
@uName nvarchar(20),
@pass nvarchar(20),
@fName nvarchar(20),
@lName nvarchar(20)
)
AS
insert into [Users] (Username, Password, Firstname, Lastname)
values (@uName, @pass, @fName, @lName)
这是我桌子的代码:
CREATE TABLE [dbo].[Users] (
[Id] INT IDENTITY (1, 1) NOT NULL,
[Username] NCHAR (20) NOT NULL,
[Password] NCHAR (20) NOT NULL,
[Firstname] NCHAR (20) NOT NULL,
[Lastname] NCHAR (20) NOT NULL,
PRIMARY KEY CLUSTERED ([Id] ASC)
);
我的windows窗体程序目前有4个文本框和1个按钮。我正在尝试将文本框中的文本插入到我的数据库中。这是我点击事件的代码:
DatabaseConnectionDataContext dc = new DatabaseConnectionDataContext();
dc.AddNewUser(tbUsername.Text, tbPassword.Text, tbFirstname.Text, tbLastname.Text);
dc.SubmitChanges();
当我启动程序时,在文本框中输入一些数据,然后单击按钮,文本框中的数据将插入到表中,但当我再次启动程序并在文本框输入一些数据时,新数据将插入第一行,而不是创建新行,旧数据将被擦除。任何人都可以提出为什么会发生这种情况?
如果用户存在,您将错过检查,通常情况下,您会根据id进行检查。
using (var dc = new DatabaseConnectionDataContext()){
if (dc.Users.Any(o => o.Username== tbUsername.Text && o.Password == tbPassword.Text ...){
...
}else{dc.AddNewUser(tbUsername.Text, tbPassword.Text, tbFirstname.Text, tbLastname.Text);}
dc.SubmitChanges();
}
编辑:已阅读StefanoGermani的评论
你在记忆中奔跑吗?