मुझे संदिग्ध यहां जो हो रहा है वह बस इतना है:आपके डेटाबेस में गैर-यूनिकोड कॉलम हैं, और आप यूनिकोड डेटा स्टोर करने का प्रयास कर रहे हैं। अप्रतिष्ठित पात्र वास्तव में ग्रीक होंगे। सही समाधान है:सुनिश्चित करें कि आपका कॉलम यूनिकोड है। कॉलम एन्कोडिंग के साथ खिलवाड़ कर सकता है काम, लेकिन लानत यूनिकोड का उपयोग करने की तुलना में यह बहुत काम है।
डैपर चीजों को "जैसी है" ADO.NET को भेजता है; प्रदाता क्या करता है प्रदाता पर निर्भर करता है। वहाँ है में data डेटा भेजते समय एएनएसआई और यूनिकोड के बीच चयन करने के लिए इसे बताने का एक तरीका डेटाबेस, हालांकि - DbString
. के माध्यम से , यानी
conn.Execute(sql, new {
id, name,
desc = new DbString { IsAnsi = true, Value = desc }
});
यह आपको लंबाई आदि को नियंत्रित करने की भी अनुमति देता है। हालांकि, हम एन्कोडिंग . को नियंत्रित नहीं कर रहे हैं यहां; एन्कोडिंग आमतौर पर डेटाबेस की या प्रदाता की संपत्ति होती है। यदि MySQL के पास ADO.NET में इसे नियंत्रित करने के कुछ पहले से बताए गए तरीके हैं, तो मैं "सभी के लिए" हूं, लेकिन पहले:आपको इसे कच्चे ADO.NET में काम करने की आवश्यकता है।