首页 > 解决方案 > 以编程方式防止在 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

任何帮助将不胜感激

标签: c#

解决方案


推荐阅读