我在同一个 ExecuteScalar 命令中同时检查 2 条记录时遇到问题。
我想在本地数据库中不同列的同一行中一起搜索2条记录,我尝试像下面的代码一样进行操作,但只有在1个条件下执行它才可以,但我想要2个条件同时,在同一行。
这是我的代码,当我处于循环中时,每次检查 DataGridView 中的每一行是否等于我的本地数据库:
private void button3_Click(object sender, EventArgs e)
{
foreach (DataGridViewRow row in dataGridView1.Rows)
{
string constring = @"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\john\Documents\Visual Studio 2015\Projects\Project\Project\DB.mdf;Integrated Security=True";
using (SqlConnection con = new SqlConnection(constring))
{
using (SqlCommand sqlCommand = new SqlCommand("SELECT COUNT(*) 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);
int userCount = (int)sqlCommand.ExecuteScalar();
if (userCount > 0)
{
MessageBox.Show("found!");
}
else
{
MessageBox.Show("not found!");
}
}
}
}
日期转换只是为了让我得到像 23.05.2015 这样的日期,并且我想将其转换为数据库的日期类型,例如 23/05/2015 。 我只想检查同一行中 2 条记录的重复
(同一个表中的2个主键) 在我插入它们之前。
最佳答案
在sql命令之后添加这个
IDataReader reader = cm.ExecuteReader();
while (reader.Read())
{
if (reader.GetValue(0) != 0)
// your Code
}
关于c# - 如何在同一个 ExecuteScalar() 命令中同时检查多个相等的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41896900/