تحقق مما إذا كان DataRow موجودًا باسم العمود في C#؟ [مكرر

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 لا ينتمي إلى الجدول. أريد ببساطة التحقق مما إذا كان غير فارغ ، ثم اضبط القيمة.

أليس هناك طريقة للقيام بذلك؟

هل كانت مفيدة؟

المحلول

يجب أن تحاول

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"))
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top