سؤال

وأستخدمه asp.net واني اسعى الى حفظ قيم مربع في قاعدة بيانات. يمكن إدخال خانات متعددة في نفس المجال في قاعدة البيانات. هكذا على سبيل المثال لدي اثنين من مربعات مع أسماء "فاصلة" و "واصلة" وإذا كانت الشيكات المستخدم كل من هذه ثم قاعدة البيانات سوف تخزن القيم '،'، '-'. كيف يمكنك أن تفعل هذا؟

وذلك بفضل

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

المحلول

لحفظ قيم متعددة في نفس العمود انصح باستخدام تعداد العلم. هنا هو نموذج التعليمات البرمجية باستخدام خانات .

إذا كان لديك حقا لتخزين القيم في شكل بفواصل، قد تحاول شيئا من هذا القبيل:

List<string> values = new List<string>();
if (cbComma.Checked) {
   values.Add("','");
}
...
string result = values.ToArray().Join(",");

نصائح أخرى

وكنت أتفق مع توصية ديفيد توماس غارسيا إذا يمكنك حفظ قيمة إلى قاعدة البيانات باستخدام التعداد (كما عدد صحيح أو أيا كان يتناسب مع كمية من الخيارات سيكون لديك).

وإذا كان هذا ليس خيارا رغم ذلك، وكنت ملزمة لتخزينها في قاعدة البيانات كسلسلة من الأحرف كنت تفعل شيء كما يلي:


private void LoadData()
{
   string dbVal = DataAccess.GetDbVal(); //Get your value from the database.
   chkComma.Checked = dbVal.Contains(",");
   chkDash.Checked = dbVal.Contains("-");
}

private void SaveData()
{
   string dbVal = "";
   if(chkComma.Checked)
      dbVal += ",";
   if(chkDash.Checked)
      dbVal += "-";
   DataAccess.SaveDbVal(dbVal); //Send the value of dbVal to your data layer to be saved.
}

لاحظ أن هذا لا يتضمن أي فصل القيم ليتم حفظها في القيمة المخزنة في قاعدة البيانات، ولكن إذا كنت في حاجة التي يمكن أن تستخدم قائمة وتفعل ما <لأ href = "https://stackoverflow.com / الأسئلة / 426599 / لإنقاذ مربع التحكم القيم # 426621 "> ديفيد توماس غارسيا المذكورة مع .ToArray () تاريخ. (" "،)؛ في SAVEDATA () وفي LoadData () فقط للتأكد dbVal على قائمة وبناء الجملة لا تحتاج إلى التغيير.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top