C# 数据插入的预检查
我想制作一个值预检查程序。用户将向UI提供单个输入(wbslement no)。我想将该记录插入系统。在插入数据库之前,我想检查它是否存在于表中。若它存在于表中,那个么它不应该将记录插入表中。若它不存在于数据库中,那个么它应该插入 目前,在加载时,我正在从表中提取所有记录,之后我将尝试插入到系统中 在我的代码中,它在任何情况下都是插入值C# 数据插入的预检查,c#,asp.net,C#,Asp.net,我想制作一个值预检查程序。用户将向UI提供单个输入(wbslement no)。我想将该记录插入系统。在插入数据库之前,我想检查它是否存在于表中。若它存在于表中,那个么它不应该将记录插入表中。若它不存在于数据库中,那个么它应该插入 目前,在加载时,我正在从表中提取所有记录,之后我将尝试插入到系统中 在我的代码中,它在任何情况下都是插入值 CrCon = new SqlConnection(spcallloggin); CrCon.Open();
CrCon = new SqlConnection(spcallloggin);
CrCon.Open();
CrCmd = new SqlCommand();
CrCmd.Connection = CrCon;
CrCmd.CommandText = "GetOraderNumberDetail";
CrCmd.CommandType = CommandType.StoredProcedure;
sqladpter = new SqlDataAdapter(CrCmd);
ds = new DataSet();
sqladpter.Fill(ds);
for (int count = 0; count < ds.Tables[0].Rows.Count; count++)
{
if (txtwbs.Text == ds.Tables[0].Rows[count][0].ToString())
{
Lbmsg.Visible = true;
Lbmsg.Text = "Data Already Exists !";
count = count + 1;
}
else
{
insetreco(val);
}
}
CrCon=newsqlconnection(spcallloggin);
CrCon.Open();
CrCmd=newsqlcommand();
CrCmd.Connection=CrCon;
CrCmd.CommandText=“GetOraderNumberDetail”;
CrCmd.CommandType=CommandType.StoredProcess;
sqladpter=新的SqlDataAdapter(CrCmd);
ds=新数据集();
sqladpter.Fill(ds);
对于(int count=0;count
最好直接在存储过程中检查它
IF NOT EXISTS(SELECT * FROM [TABLE] WHERE unique_field = "value of the txtwbs")
BEGIN
INSERT INTO [TABLE]
VALUES (value1, value2, value3,...)
END
您还可以按以下方式更改代码:
bool doesExist;
for (int count = 0; count < ds.Tables[0].Rows.Count; count++)
{
if (txtwbs.Text == ds.Tables[0].Rows[count][0].ToString())
{
Lbmsg.Visible = true;
Lbmsg.Text = "Data Already Exists !";
doesExist = true;
break;
}
}
if(!doesExist)
insetreco(val);
bool-doe性别歧视;
对于(int count=0;count
可用于查询内存中的表:
Dataview dv = ds.Tables[0].DefaultView ;
dv.RowFilter="wbslement_no="+number;
if(dv.ToTable().Rows.Count==0)
{
//insert into database
}
else
{
Lbmsg.Visible = true;
Lbmsg.Text = "Data Already Exists !";
}
或
您可以检查存储过程中的重复性,而不是对数据库进行两次单独的调用。只需对表本身进行“唯一”键约束即可。MySQL已经有了一个现有的结构来处理这个问题,所以在代码中这样做没有意义。检查一下:
根据您的需要进行更改
IF EXISTS (SELECT 1 FROM targetTable AS t
WHERE t.empNo = @yourEmpNo
AND t.project = @yourProject)
BEGIN
--what ever you want to do here
END
ELSE
BEGIN
INSERT INTO yourTable (empno, name, project)
SELECT @empno, @name, @project
END
请检查这些链接,你会得到很好的结果,我有一个表。那么,如何在插入之前检查重复项如何在insert语句中写入where cluase?