मैं dbf फ़ाइलों पर क्वेरी करने के लिए डैपर का उपयोग करना चाहता हूं। मेरी फाइल example.dbf में मैं दो कॉलम है:डैपर: डीबीएफ से स्ट्रिंग पार्स करने में सक्षम नहीं है (कॉलम पार्स करने में त्रुटि)
- मूल्य - प्रकार NUMERIC
- नाम - तरह का पात्र
मैं लिखने के वर्ग ExampleDbf
class ExampleDbf
{
public int Value { get; set; }
public string Name { get; set; }
}
अब मैं लिखना चाहते हैं दो सरल क्वेरी
var listOne = connection.Query<ExampleDbf>("SELECT value FROM Example");
var listTwo = connection.Query<ExampleDbf>("SELECT name, value FROM Example");
ListOne ठीक हैं लेकिन जब मैं listTwo निष्पादित मैं निम्नलिखित System.Data.DataException है:
Additional information: Error parsing column 0 (name=System.Byte[] - Object)
जब मैं मानक DataReader का उपयोग मुझे लगता है कि
example.name = System.Text.Encoding.ASCII.GetString((byte[])reader["name"]).Trim();
बेशक मैं की तरह कुछ लिख सकते हैं जैसे कुछ लिखना चाहिए इस:
class ExampleDbf2
{
public int Value { get; set; }
public byte[] Name { get; set; }
public string StringName
{
get
{
return System.Text.Encoding.ASCII.GetString((byte[])Name).Trim();
}
}
}
तो अब यह काम करता है
var listTwo = connection.Query<ExampleDbf2>("SELECT name, value FROM Example");
लेकिन यह समाधान बहुत बदसूरत है, शायद किसी के पास बेहतर समाधान हो सकता है।
डीबी का डेटा चरित्र डेटा है; डैपर कभी आपकी ओर से 'एन्कोडिंग' निर्णय नहीं ले रहा है: यह बहुत ही अस्पष्ट सवाल है ... यदि आप चाहते थे तो आप एक शिम संपत्ति का उपयोग कर सकते हैं ... –