11

文字列があり、DataTabledtPs.Rowsの列「item_manuf_id」が特定の値に等しいかどうかを確認する必要があります

すべての行をループして比較できます

String id = dtPs.Rows[number]["item_manuf_id"].ToString()
if ("some value".equals(id)) etc.

DataTableしかし、レコードが含まれているかどうかを確認する方法があるかどうか疑問に思っています

4

4 に答える 4

19

このようなもの

 string find = "item_manuf_id = 'some value'";
 DataRow[] foundRows = table.Select(find);
于 2012-08-14T21:37:21.887 に答える
5

が主キーの場合は、 Findメソッドを使用します。item_manuf_id

var result = dtPs.Rows.Find("some value");

値がそこにあるかどうかだけを知りたい場合は、Containsメソッドを使用します。

if (dtPs.Rows.Contains("some value"))
{
  ...
}

主キーの制限は同様に適用されますContains

于 2012-08-14T21:37:56.590 に答える
4

の各行をループしてDataTable、値を確認できます。

私はsを使用するときにforeachループを使用するのが大好きですIEnumerable。各行を表示または処理するのが非常に簡単でクリーンになります

DataTable dtPs = // ... initialize your DataTable
foreach (DataRow dr in dtPs.Rows)
{
    if (dr["item_manuf_id"].ToString() == "some value")
    {
        // do your deed
    }
}

または、を使用することもできPrimaryKeyますDataTable。これはさまざまな点で役立ちますが、使用する前に定義する必要があることがよくあります。

http://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(...)メソッドを使用して、主キーに一致する行を取得できます。

http://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()メソッドを使用して、http://msdn.microsoft.com/en-us/library/y06xa2h1( v = vs.80DataTable ).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
}
于 2012-08-14T21:54:27.400 に答える
2

「item_manuf_id」がDataTableの主キーである場合は、 Findメソッドを使用できると思います...

string s = "stringValue";
DataRow foundRow = dtPs.Rows.Find(s);
if(foundRow != null) {
 //You have it ...
 }
于 2012-08-14T21:36:51.587 に答える