يأخذ الجلد الذي كتبته النص بدون القيمة فقط لكي يبدو جيدًا. استخدم الآن هذه الطريقة لحل الطريقة غير الملائمة المتمثلة في أخذ القيمة من النص فقط بالطبع، يمكنك أيضًا إرجاع هاتين القائمة فقط
شفرة
/// <الملخص>
/// احصل على الفهرس بناءً على اسم العمود
/// </الملخص>
/// <param name="fiId">اسم العمود</param>
/// <returns>فهرس العمود</returns>
سلسلة خاصة GetFunctionNameByName (اسم السلسلة)
{
نتيجة فار = this.objWSM.GetFunctionInfo().AsEnumerable().Where(f1 => f1["fiName"].ToString().Trim() == Name.ToString().Trim()).FirstOrDefault() ;
إرجاع النتيجة["fiId"].ToString();
}
GetFunctionInfo هي طريقة تستعلم عن كافة المعلومات الموجودة في الجدول
/// <الملخص>
/// احصل على اسم العمود بناءً على فهرس العمود
/// </الملخص>
/// <param name="fiId">فهرس العمود</param>
/// <returns>اسم العمود</returns>
سلسلة خاصة GetFunctionNameById(int fiId)
{
var result = this._fiTable.AsEnumerable().Where(fi => Convert.ToInt32(fi["fiId"]) == fiId).FirstOrDefault();
إرجاع النتيجة["fiName"].ToString();
}
أشعر أن الطريقتين متطابقتان، ويمكن إكمالهما مباشرة في مكتب الاستقبال عند الاتصال بقاعدة البيانات.
اسمحوا لي أن أشرح هذه الخطوة.
this.objWSM.GetFunctionInfo().AsEnumerable().Where(f1 => f1["fiName"].ToString().Trim() == Name.ToString().Trim()).FirstOrDefault();
this.objWSM.GetFunctionInfo() هي طريقة للاستعلام عن الكل
تقوم الدالة AsEnumerable().Where() بإرجاع صف عام يمكن الاستعلام عنه باستخدام تعبيرات LinQ
f1 => f1["fiName"].ToString().Trim() == Name.ToString().Trim())تعبير Linq
F1 هو اسم الصف الذي تم إنشاؤه حديثًا
f1["fiName"]. بالطبع هو اسم العمود في هذا الصف، => متبوعًا بالشرط ومسبق بالمجموعة
f1["fiName"].ToString().Trim() == Name.ToString().Trim() يعني أنه إذا كانت هناك قيمتان متساويتان في هذا السطر، فقم بإخراجهما
FirstOrDefault(); يعني أخذ الصف الأول
في هذه المرحلة، تم حل المشكلة تقريبًا. طالما أن هناك طريقة للاستعلام عن هذين العمودين، فاكتب هاتين الطريقتين في مكتب الاستقبال، وسيكون الأمر على ما يرام في كل مرة الوصول إلى قاعدة البيانات، وهو أمر مريح للغاية.