تحقق مما إذا كان 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
لا ينتمي إلى الجدول. أريد ببساطة التحقق مما إذا كان غير فارغ ، ثم اضبط القيمة.
أليس هناك طريقة للقيام بذلك؟
المحلول
يجب أن تحاول
if (row.Table.Columns.Contains("US_OTHERFRIEND"))
لا أعتقد أن الصف لديه خاصية الأعمدة نفسها.
نصائح أخرى
if (drMyRow.Table.Columns["ColNameToCheck"] != null)
{
doSomethingUseful;
{
else { return; }
على الرغم من أن DataRow لا يحتوي على خاصية الأعمدة ، إلا أنه يحتوي على جدول يمكن فحص العمود.
يمكنك استخدام DataColumnCollection لـ DataTable للتحقق مما إذا كان العمود موجودًا في المجموعة.
شيء مثل:
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