C# 在C中搜索多个SQL唯一ID

C# 在C中搜索多个SQL唯一ID,c#,sql-server,C#,Sql Server,我目前正在尝试从C语言的数据库中搜索多个唯一ID。我可以使用以下方法拉一个: var atmtrans = (from clf in db.CODE_LINE_FIELDS where clf.FIELD2_DATA == "26" 我在C还是个新手,我想我可以做以下几件事 其中clf.FIELD2_DATA==26+20+27+64000 但后来我意识到基本上是26202764000 在SQL Managem

我目前正在尝试从C语言的数据库中搜索多个唯一ID。我可以使用以下方法拉一个:

var atmtrans =
                    (from clf in db.CODE_LINE_FIELDS
                     where clf.FIELD2_DATA == "26" 
我在C还是个新手,我想我可以做以下几件事

其中clf.FIELD2_DATA==26+20+27+64000

但后来我意识到基本上是26202764000

在SQL Management Studio中直接从数据库搜索将非常简单,如下所示:

 select * FROM [Database].[dbo].[Table] where Column in ('20',
  '26',
  '27',
  '64000') 

使用正确的唯一ID将变量重复三次同样容易,还是有其他方法

> P>你可以考虑在C中创建一个函数,它需要你想搜索的ID。
searchforID(int ID){
 var data = from clf in db.CODE_LINE_FIELDSwhere clf.FIELD2_DATA = ID;
 return data
}

然后您可以多次调用它。

听起来您要查找的只是多个或多个条件:

where clf.FIELD2_DATA == "26" || clf.FIELD2_DATA== "20" || clf.FIELD2_DATA== "27" || clf.FIELD2_DATA== "64000"
若您想要一个更整洁的方法,您可以创建一个您正在查找的ID列表,并使用.Contains仅选择该列表中的项目

这非常类似于SQL,其中。。。在…

中,您可以这样做

(from clf in db.CODE_LINE_FIELDS
                 where clf.FIELD2_DATA == "26" || 
                       clf.FIELD2_DATA == "20" || 
                       clf.FIELD2_DATA == "27" ||
                       clf.FIELD2_DATA == "64000"
这是指定要查找ID 26、20、27或64000

SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\data.mdf;Integrated Security=True");
con.Open();            
            SqlCommand multikill= new SqlCommand("select count(*) from Table where ID='"+TextBox1.Text+"'", con);            
            if (int.Parse(multikill.ExecuteScalar().ToString()) > 1)
 {
                SqlDataAdapter da = new SqlDataAdapter("select * from Table where ID='"+TextBox1.Text+"'",bag);
                DataSet ds = new DataSet();
                da.Fill(ds,"Table");
                dataGridView2.DataSource = ds.Tables["Table"];
}
con.Close();
//我希望这能解决你的问题

//我希望我没有误解


//抱歉,我无法抵抗多重杀伤

这似乎很糟糕。如果您有200个ID,而不是让SQL引擎在一个事务中处理它们,您将创建200个不同的事务,这些事务都必须单独返回。研究下面的方法,当我查看结果时,将作出响应。+1使用第二种更简洁的方法。最想为OP添加的是:确保您的唯一字段有一个索引,并且希望它是表的主/聚集索引。`| ``不是一个or运算符吗?这样,如果它没有看到'26',它将转到下一个正确的字段?如果我想让它搜索所有记录,我会将它从“| |”切换到“|”@dwhilton,or在每个记录上执行,因此如果记录的FIELD2|u数据属性与任何ID匹配,则会包括该记录。
SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\data.mdf;Integrated Security=True");
con.Open();            
            SqlCommand multikill= new SqlCommand("select count(*) from Table where ID='"+TextBox1.Text+"'", con);            
            if (int.Parse(multikill.ExecuteScalar().ToString()) > 1)
 {
                SqlDataAdapter da = new SqlDataAdapter("select * from Table where ID='"+TextBox1.Text+"'",bag);
                DataSet ds = new DataSet();
                da.Fill(ds,"Table");
                dataGridView2.DataSource = ds.Tables["Table"];
}
con.Close();