我目前正在尝试从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重复变量三次是否容易,还是有另一种方法?
答案 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();
//我希望这可以解决您的问题
//我希望我不要误会
//对不起,我无法抗拒“多重杀手”