检查DataTable中是否存在字符串/记录
我有一个字符串,我需要检查DataTable dtPs.Rows中的任何列“item_manuf_id”是否等于某个值
我可以遍历所有行并进行比较
String id = dtPs.Rows[number]["item_manuf_id"].ToString() if ("some value".equals(id)) etc.
但我想知道是否有办法检查DataTable
包含记录
像这样的东西
string find = "item_manuf_id = 'some value'"; DataRow[] foundRows = table.Select(find);
如果item_manuf_id
是主键,请使用Find方法:
var result = dtPs.Rows.Find("some value");
如果您只想知道值是否在那里,那么使用Contains方法。
if (dtPs.Rows.Contains("some value")) { ... }
主键限制适用于Contains
。
您可以循环遍历DataTable
每一行并检查该值。
在使用IEnumerable
时,我非常喜欢使用foreach循环。 查看或处理每一行非常简单和干净
DataTable dtPs = // ... initialize your DataTable foreach (DataRow dr in dtPs.Rows) { if (dr["item_manuf_id"].ToString() == "some value") { // do your deed } }
或者,您可以为您的DataTable
使用PrimaryKey
。 这有助于各种方式,但您通常需要先定义一个,然后才能使用它。
如果在https://msdn.microsoft.com/en-us/library/z24kefs8(v=vs.80).aspx使用一个示例
DataTable workTable = new DataTable("Customers"); // set constraints on the primary key DataColumn workCol = workTable.Columns.Add("CustID", typeof(Int32)); workCol.AllowDBNull = false; workCol.Unique = true; workTable.Columns.Add("CustLName", typeof(String)); workTable.Columns.Add("CustFName", typeof(String)); workTable.Columns.Add("Purchases", typeof(Double)); // set primary key workTable.PrimaryKey = new DataColumn[] { workTable.Columns["CustID"] };
一旦定义了主键并填充了数据,就可以使用Find(…)方法获取与主键匹配的行。
看看https://msdn.microsoft.com/en-us/library/y06xa2h1(v=vs.80).aspx
DataRow drFound = dtPs.Rows.Find("some value"); if (drFound["item_manuf_id"].ToString() == "some value") { // do your deed }
最后,您可以使用Select()方法在DataTable
查找数据,该DataTable
也位于https://msdn.microsoft.com/en-us/library/y06xa2h1(v=vs.80).aspx 。
String sExpression = "item_manuf_id == 'some value'"; DataRow[] drFound; drFound = dtPs.Select(sExpression); foreach (DataRow dr in drFound) { // do you deed. Each record here was already found to match your criteria }
我认为如果你的“item_manuf_id”是DataTable的主键,你可以使用Find方法……
上述就是C#学习教程:检查DataTable中是否存在字符串/记录分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
string s = "stringValue"; DataRow foundRow = dtPs.Rows.Find(s); if(foundRow != null) { //You have it ... }
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1015594.html