У меня возникла проблема с проверкой двух значений в моей базе данных одновременно в одной строке, в моей таблице у меня есть 2 первичных ключа (Date
и TagNumber
), и перед тем, как я вставляю какие-либо новые данные, я хочу проверить наличие дубликатов записей.Как проверить дубликаты записей перед их вставкой в DB (2 основных ключа)
Мне нужно проверить, что я не ввожу никаких новых данных с тем же date
и тем же tagnumber
.
Например: Current Record
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 [email protected] AND [email protected]", 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 параметр ....