c# - 以编程方式防止在 SQL c# 中插入重复记录
问题描述
我有一个代码,我试图在其中插入记录。所有记录都已插入,但有重复项。我想停止重复相同的记录。
public int SaveReadingsInCIS(Reading pReading)
{
SqlConnection con = new SqlConnection("Data Source=RND-FAISAL;Initial Catalog=hesco;Integrated Security=True;MultipleActiveResultSets=True;");
int result = -1;
string dt = pReading.XTimeStamp.Replace("T"," ");
string fdt = dt.Remove(dt.Length-6);
if (con.State != ConnectionState.Open)
{
con.Open();
}
SqlCommand insert_cmd = new SqlCommand("INSERT INTO [dbo].[billing]([unique_id],[ref_no],[msn],"+
"[kWh1],[kVarh1],[kWh2],[kVarh2],[datetime])VALUES(@uniqueid,@refno,@msn,@kwh1,@kvarh1,@kwh2,@kvarh2,@datetime)",con);
insert_cmd.CommandType = CommandType.Text;
insert_cmd.Parameters.AddWithValue("@uniqueid",pReading.App_no);
insert_cmd.Parameters.AddWithValue("@refno",pReading.Ref_no);
insert_cmd.Parameters.AddWithValue("@msn",pReading.Serial_no);
insert_cmd.Parameters.AddWithValue("@kwh1",pReading.KWH1);
insert_cmd.Parameters.AddWithValue("@kvarh1",pReading.KVARH1);
insert_cmd.Parameters.AddWithValue("@kwh2",pReading.KWH2);
insert_cmd.Parameters.AddWithValue("@kvarh2",pReading.KVARH2);
insert_cmd.Parameters.AddWithValue("@datetime", fdt.ToString());
try
{
result = insert_cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
result = ex.HResult;
}
finally
{
if (con != null && con.State == ConnectionState.Open)
{
con.Close();
}
}
return result;
}
在上面的代码中有一个日期时间fdt
。可能有重复msn
但不同的日期时间。我想停止重复插入相同的日期时间和msn
任何帮助将不胜感激
解决方案
推荐阅读
- php - laravel - 如何在控制器中实现 Heartland 支付方式
- python - python从字典词典中制作平均值列表:所有平均值相同
- c# - 如何在 C# 的轮播视图中显示下一张图片?
- regex - 如何在python中使用正则表达式从文本中删除项目符号
- spring-boot - SpringBoot中的单元测试Freemarker模板 - 无法初始化freemarker配置
- string - 错误类型“字符串”不是类型转换颤振 sqflite 中“num”类型的子类型
- c# - 将数据从 UserControl 传递到窗体
- html - 使用 CSS 定位元素
- c - C LANG 使用数组读取列和行
- typescript - LoopBack 4:向 SOAP 请求中的元素添加类型属性