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个现有列。
答案 0 :(得分:0)
您可以在4列
上添加唯一约束CONSTRAINT UC_unique UNIQUE (col1, col2, col3, col4)
答案 1 :(得分:0)
为什么不首先使用单独的函数来找出重复的记录。
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
}
但你的问题有点令人困惑,你确定要插入记录而不是更新???插入查询始终插入新记录。
答案 2 :(得分:0)
您需要将唯一约束添加到3列,而不是在代码中使用异常处理,插入新记录。