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

StackOverflow https://stackoverflow.com/questions/2563526

  •  23-09-2019
  •  | 
  •  

質問

この質問にはすでに答えがあります:

次のようなことをしたいです:

   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 でないことを単純に確認してから、値を設定したいと考えています。

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

役に立ちましたか?

解決

あなたは試してみてください。

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

私はその行、列のプロパティ自体を持っていると信じていません。

他のヒント

if (drMyRow.Table.Columns["ColNameToCheck"] != null)
{
   doSomethingUseful;
{
else { return; }
DataRowは、Columnsプロパティを持っていませんが、

は、それは列がためにチェックできるという表を持っています。

あなたは列がコレクション内にあるかどうかを確認するためにあなたのデータテーブルのDataColumnCollectionを使用することができます。

のような何かます:

DataColumnCollection Columns = dtItems.Columns;

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

あなたが使用することができます。

try {
   user.OtherFriend = row["US_OTHERFRIEND"].ToString();
}
catch (Exception ex)
{
   // do something if you want 
}
if (row.Columns.Contains("US_OTHERFRIEND"))
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top