我有一个数据表.我需要根据用户输入获取某个列值.例如,假设数据表有两列CountryID和CountryName.
我需要根据用户输入的国家/地区名称在数据表中找到CountryID.我可以打开与DB的连接,并从countryName = @userinput的Country运行查询select countryID.无论如何我可以在数据表上执行此操作.
string countryName = "USA"; DataTable dt = new DataTable(); int id = (from DataRow dr in dt.Rows where (string)dr["CountryName"] == countryName select (int)dr["id"]).FirstOrDefault();
foreach (DataRow row in Datatable.Rows) { if (row["CountryName"].ToString() == userInput) { return row["CountryID"]; } }
虽然这可能无法直接编译,但您应该明白这一点,我也相信通过SQL进行查询将会非常优越,因为巨大的数据表需要很长时间才能运行所有行.
我建议这种方式基于扩展方法:
IEnumerablecountryIDs = dataTable .AsEnumerable() .Where(row => row.Field ("CountryName") == countryName) .Select(row => row.Field ("CountryID"));
需要引用System.Data.DataSetExtensions.dll.