c# - DataCable में सी#डेटाटाले पर प्रतिबंध?




.net datatable (2)

ऐसा करने का एक तरीका है DataTable की कॉलम चेंजिंग इवेंट में e.ProposedValue का निरीक्षण करना।

किसी विशेष स्तंभ पर बाधा उत्पन्न करने के लिए, आप उन अवरोधों को रोकने के लिए अपने ध्वज के रूप में कार्य करने के लिए डेटाकॉलम के विस्तारित संग्रह का उपयोग कर सकते हैं:

DataTable dt = new DataTable();
DataColumn dc = new DataColumn("Range", typeof(int));
dc.ExtendedProperties.Add("Min", 0);
dc.ExtendedProperties.Add("Max", 10);
dt.Columns.Add(dc);
dt.ColumnChanging += dt_ColumnChanging;

कॉलम चेंजिंग इवेंट में, आप जांच करेंगे कि क्या वे गुण मौजूद हैं, फिर उनका उपयोग करें:

void dt_ColumnChanging(object sender, DataColumnChangeEventArgs e) {
  if (e.Column.ExtendedProperties.ContainsKey("Min") &&
      e.Column.ExtendedProperties.ContainsKey("Max")) {
    int min = (int)e.Column.ExtendedProperties["Min"];
    int max = (int)e.Column.ExtendedProperties["Max"];
    if ((int)e.ProposedValue < min) e.ProposedValue = min;
    if ((int)e.ProposedValue > max) e.ProposedValue = max;
  }
}

क्या सी # में डेटाटाले पर एक मान सीमा बाधा पैदा करना संभव है?

मैं गतिशील रूप से एक DataTable में एक कॉलम जोड़ रहा हूं:

this.PrimaryCorrelationMatrix.Columns.Add(sName, typeof(int));

लेकिन मैं इस कॉलम के सभी मूल्यों को [0, 10] से पूर्णांक होना चाहता हूं। क्या मैं डाटाटीबल पर सीधे इस तरह की बाधा को लागू कर सकता हूं?

अगले सर्वोत्तम विकल्प मैं सोच सकता हूँ कि [0, 10] के संभावित मूल्यों के साथ कुछ ऑब्जेक्ट बनाने और टाइपफ (विशेष ओबीजे) का उपयोग करके टाइपफ (इंट) के बजाय।


मैं आपको डेटा तालिकाओं और कक्षाओं का उपयोग करने के बारे में भूल जाने की सलाह दे सकता हूं। अपने मॉडल को मान्य करने के लिए आप डेटा एनोटेशन का उपयोग कर सकते हैं

विशिष्ट गुण के लिए मूल्यों की श्रेणी को मान्य करने के लिए इस विशेषता का उपयोग करें /

यह कोड निर्दिष्ट आलेख से निकाला जाता है (वर्ग के उदाहरण के लिए एक श्रेणी की मान्यता):

public class Product
{

  [Range(5, 50)]
  public int ReorderLevel { get; set; }

  [Range(typeof(Decimal),"5", "5000")]
  public decimal ListPrice { get; set; }

}

आप कक्षाओं के उपयोग के बहुत सारे लाभ प्राप्त करने जा रहे हैं





system.data