【发布时间】:2017-06-13 18:11:25
【问题描述】:
我在检查数据库中同一行的 2 个值时遇到问题,在我的表中我有 2 个主键(Date 和 TagNumber),在我插入任何新数据之前我想检查重复记录。
我需要检查我没有插入任何具有相同date 和相同tagnumber 的新数据。
例如:当前记录
Date: 25/03/2015
TagNumber:111
当有新数据可用时,我需要检查 Date 和 TagNumber 是否已存在于另一条记录中(因为这将是重复的)。
所以如果新数据是
Date:25/03/2015
TagNumber:111
该记录已经存在,将跳过插入新记录。但是,如果新数据是:
Date:27/03/2015
TagNumber:111
这将是一条新记录,并将继续插入数据。
代码:
foreach (DataGridViewRow row in dataGridView1.Rows)
{
string constring = @"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\koni\Documents\Visual Studio 2015\Projects\t\Project\DB.mdf;Integrated Security=True";
using (SqlConnection con = new SqlConnection(constring))
{
using (SqlCommand sqlCommand = new SqlCommand("SELECT * from ResultsTable where TagNumber=@TagNumber AND Date=@Date", con))
{
con.Open();
string smdt1 = row.Cells["Exposure Date"].Value.ToString();
string format1 = "dd.MM.yyyy";
DateTime dt1 = DateTime.ParseExact(smdt1, format1, CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal);
sqlCommand.Parameters.AddWithValue("@Date", dt1);
sqlCommand.Parameters.AddWithValue("@TagNumber", row.Cells["Device #"].Value);
}
}
}
我已经尝试过 ExecuteScalar() 命令,但效果不佳 - 它仅适用于 1 个参数....
【问题讨论】:
标签: c# sql database duplicates