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

时间:2017-10-26 15:28:01

标签: c# sql-server

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

var atmtrans =
                    (from clf in db.CODE_LINE_FIELDS
                     where clf.FIELD2_DATA == "26" 

我仍然是C#的新手,我以为我可以做以下

where clf.FIELD2_DATA == "26" + "20" + "27" + "64000"

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

直接从SQL Management Studio中的数据库进行搜索就像下面这样简单:

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

使用适当的唯一ID重复变量三次是否容易,还是有另一种方法?

4 个答案:

答案 0 :(得分:1)

听起来你正在寻找的只是多个OR条件:

where clf.FIELD2_DATA == "26" || clf.FIELD2_DATA== "20" || clf.FIELD2_DATA== "27" || clf.FIELD2_DATA== "64000"

如果您需要更简洁的方法,则可以创建List<string>您要查找的ID,并仅使用.Contains选择该列表中的项目。

List<string> ids = new List<string> { "26", "20", "27", "64000" };

var atmtrans = (from clf in db.CODE_LINE_FIELDS
                where ids.Contains(clf.FIELD2_DATA)
                ...

这与SQL WHERE ... IN (...)

非常相似

答案 1 :(得分:0)

您可以考虑在C#中创建一个带有您要搜索的ID的函数。

searchforID(int ID){
 var data = from clf in db.CODE_LINE_FIELDSwhere clf.FIELD2_DATA = ID;
 return data
}

然后你可以多次调用它。

答案 2 :(得分:0)

你可以这样做

(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

答案 3 :(得分:0)

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();

//我希望这可以解决您的问题

//我希望我不要误会

//对不起,我无法抗拒“多重杀手”