web-dev-qa-db-ja.com

DataRowがC#の列名で存在するかどうかを確認しますか?

私はこのようなことをしたい:

   private User PopulateUsersList(DataRow row)
        {
            Users user = new Users();
            user.Id = int.Parse(row["US_ID"].ToString());
            if (row["US_OTHERFRIEND"] != null)
            {
                user.OtherFriend = row["US_OTHERFRIEND"].ToString();
            }
            return user;
        }

ただし、US_OTHERFRIENDがテーブルに属していないというエラーが表示されます。 nullでないかどうかを単純に確認し、値を設定します。

これを行う方法はありませんか?

99
waqasahmed

試してみてください

if (row.Table.Columns.Contains("US_OTHERFRIEND"))

行には列プロパティ自体があるとは思わない。

269
Kibbee
if (drMyRow.Table.Columns["ColNameToCheck"] != null)
{
   doSomethingUseful;
{
else { return; }

DataRowにはColumnsプロパティはありませんが、列をチェックできるTableがあります。

16
JeffPGMT

データテーブルのDataColumnCollectionを使用して、列がコレクション内にあるかどうかを確認できます。

何かのようなもの:

DataColumnCollection Columns = dtItems.Columns;

if (Columns.Contains(ColNameToCheck))
{
  row["ColNameToCheck"] = "Checked";
}
6
Allan Wolff