C#で列名でDataRowが存在するかどうかを確認しますか?[重複]
質問
この質問にはすでに答えがあります:
- ADO.NET DataRow - 列の存在を確認する 2 つの回答
次のようなことをしたいです:
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"))
所属していません StackOverflow