c# - SQL CE如何防止重复插入
问题描述
SqlCeCommand command = new SqlCeCommand(@"INSERT INTO fpl_table
(FLIGHT_ID, BPN_TIME, BPX_TIME, DAY_NB)
VALUES (@FLIGHT_ID, @BPN_TIME, @BPX_TIME, @DAY_NB)
ON DUBLICATE UPDATE FLIGHT_ID = @FLIGHT_ID, BPN_TIME=@BPN_TIME,BPX_TIME=@BPX_TIME,DAY_NB=@DAY_NB"
,connection);
command.Parameters.AddWithValue("FLIGHT_ID", format);
command.Parameters.AddWithValue("BPN_TIME", format1);
command.Parameters.AddWithValue("BPX_TIME", format2);
command.Parameters.AddWithValue("DAY_NB", format3);
大家好!
我遇到了将 4 个值插入列的问题。我想防止将 4 个现有列插入数据库,我无法将它们设置为唯一,因为同一列可以插入其他 1,2 或 3 个列,我只想阻止仅插入 4 个现有列。
解决方案
为什么不首先使用单独的函数来找出重复记录。
bool CheckDuplicateFlight(int FLIGHT_ID)
{
SqlConnection con = new SqlConnection();
con.ConnectionString = @"YOURCONNECTION STRING";
con.Open();
if (con.State == System.Data.ConnectionState.Open)
{
SqlCeCommand cmd = new SqlCeCommand("select count(*) from YOURTABLE where FLIGHT_ID= @FLIGHT_ID", con);
cmd.Connection = con;
cmd.CommandType = System.Data.CommandType.Text;
cmd.Parameters.AddWithValue("@FLIGHT_ID",FLIGHT_ID);
int ExistingId= Convert.ToInt32(cmd.ExecuteScalar());
}
con.Close();
if(ExistingId> 0)
return true;
return false;
}
if(CheckDuplicateFlight(FLIGHT_ID))
{
///// Your insertion/Update Code here
}
但是您的问题有点令人困惑,您确定要插入记录而不是更新吗?插入查询总是插入新记录。
推荐阅读
- php - 多维关联数组 - 删除重复项
- r - R中的逻辑回归错误:“列表”对象不能被强制输入“双”
- java - 在java中我如何用jpa执行postgres函数和过程?
- java - 当从 UI 接收到带有 get 请求的数据库属性时,如何在运行时在 springboot 中配置数据源
- sql - 使用 SQL 从 xml 列检索 xml 值
- sql - 如何在联结表中创建一个不允许来自父表的空值的约束?
- java - 线性同余发生器给出错误的输出
- visual-studio - 发布容器时出现 Nuget 错误 NU3037、NU3028
- python - 我的 GUI 程序代码通过单击提交按钮显示结果有什么问题吗?
- python - 为什么 requests.post() 不在 python 中使用提供的代理?