gpt4 book ai didi

c# - 如果记录存在则不插入

转载 作者:行者123 更新时间:2023-11-29 11:35:33 25 4
gpt4 key购买 nike

我正在尝试一些东西,但无法弄清楚。所以我正在尝试的是,如果用户在 txtISN 中输入某些内容并且它已经存在于数据库中,则不会插入记录。我还希望在未插入记录时弹出错误消息,并且在插入记录时弹出一条消息,表明记录已成功插入。

感谢大家的帮助!

 string _connStr = @"Data Source = EJQ7FRN; Initial Catalog = BES; Integrated Security = True";
string _query = "INSERT INTO [BES_S] (ISN,Titel,Name) values (@ISN,@Titel,@Name)";
using (SqlConnection conn = new SqlConnection(_connStr))
{
using (SqlCommand comm = new SqlCommand())
{
comm.Connection = conn;
comm.CommandType = CommandType.Text;
comm.CommandText = _query;
comm.Parameters.AddWithValue("@ISN", txtISN.Text);
comm.Parameters.AddWithValue("@Titel",txtTitel.Text);
comm.Parameters.AddWithValue("@Name", txtName.Text);
try
{
conn.Open();
comm.ExecuteNonQuery();
}
catch (SqlException ex)
{

}
}
}

最佳答案

你需要稍微改变你的查询,但是你可以使用MySql的DUAL执行此操作的关键字:

string _connStr = @"Data Source = EJQ7FRN; Initial Catalog = BES; Integrated Security = True";
string _query = "INSERT INTO [BES_S] (ISN,Titel,Name) ";
_query = _query + " SELECT @ISN, @Titel, @Name FROM DUAL";
_query = _query + " WHERE NOT EXISTS (SELECT ISN WHERE ISN=@ISN)";

using (SqlConnection conn = new SqlConnection(_connStr))
{
using (SqlCommand comm = new SqlCommand())
{
comm.Connection = conn;
comm.CommandType = CommandType.Text;
comm.CommandText = _query;
comm.Parameters.AddWithValue("@ISN", txtISN.Text);
comm.Parameters.AddWithValue("@Titel",txtTitel.Text);
comm.Parameters.AddWithValue("@Name", txtName.Text);
try
{
conn.Open();
comm.ExecuteNonQuery();
}
catch (SqlException ex)
{

}
}
}

DUAL 就像一个虚拟表,您可以使用它来SELECT

关于c# - 如果记录存在则不插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36655189/

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