2011-09-25 9 views
6

मेरे पास एक SQL सर्वर डेटाबेस के विरुद्ध सी # के भीतर निष्पादित करने के लिए एक सम्मिलित क्वेरी है।यूनिकोड एसक्यूएल क्वेरी डब्ल्यू/पैरामीटर इसके बजाय एन प्रीफिक्स

मैं जिस कॉलम को सम्मिलित कर रहा हूं वह प्रकार nvarchar है।

जो डेटा मैं उस कॉलम में डाल रहा हूं वह गैर-अंग्रेजी है।

क्या मेरे लिए सर्वर में गैर-अंग्रेजी डेटा पास करने के लिए AddWithValue का उपयोग करना पर्याप्त है? इस उदाहरण की तरह:

string dogName = "עברית"; 
using (SqlConnection connection = new SqlConnection(connectionString)) 
{ 
    connection.Open(); 
    using (SqlCommand command = new SqlCommand("INSERT INTO Dogs1(Name) VALUES @Name", connection)) 
    { 
    command.Parameters.AddWithValue("Name", dogName); 
    command.ExecuteNonQuery(); 
    } 
} 

या मुझे एनकोड घोषित करने के लिए एन उपसर्ग का उपयोग करना चाहिए? जैसे यह here कहता है।

उत्तर

3

यदि मैं सही तरीके से प्रश्न समझ रहा हूं, तो आप एक विशिष्ट डेटा प्रकार के लिए स्पष्ट रूप से SqlCommand पैरामीटर सेट कर सकते हैं। http://msdn.microsoft.com/en-us/library/yy6y35y8.aspx

कोड स्निपेट नीचे

यह MSDN से सीधे लिया गया है:: आप के रूप में नीचे दिए गए लिंक के द्वारा दिखाया nvarchar होने के लिए यह निर्धारित करने के लिए सक्षम हो जाएगा

SqlParameter parameter = new SqlParameter(); 
parameter.ParameterName = "@CategoryName"; 
parameter.SqlDbType = SqlDbType.NVarChar; 
parameter.Direction = ParameterDirection.Input; 
parameter.Value = categoryName; 

यह एक स्पष्ट रूप से बनाई गई SqlParameter उदाहरण का उपयोग करता है, लेकिन यह है SqlCommand उदाहरण के SqlParameterCollection अनुक्रमणित करके एक ही विचार।

+0

यह जानना अच्छा है, लेकिन क्या मुझे प्रत्येक पैरामीटर के लिए इस समस्या में जाना चाहिए? यह सब अतिरिक्त काम कोड की पठनीयता को कम करता है और यदि मैं कर सकता हूं तो मैं इसके बिना वास्तव में जाना चाहूंगा। – kroiz

4

मुझे विश्वास है कि नीचे दिए गए लिंक केवल के बारे में एसक्यूएल के भीतर ही के बारे में बात कर रहे हैं।

जहां तक ​​मुझे पता है, आपको जो कोड मिला है वह बिल्कुल ठीक होना चाहिए - अन्यथा यूनिकोड टेक्स्ट निर्दिष्ट करने का कोई तरीका नहीं होगा।

बेशक, यह संभवतः यह मान्य करने योग्य है - लेकिन अगर यह काम नहीं करता तो मुझे आश्चर्य होगा।

+0

कृपया मेरा उत्तर देखें। मैं मानता हूं कि यह शायद 'स्ट्रिंग' के रूप में काम करेगा, निश्चित रूप से nvarchar होगा, लेकिन डेटाटाइप क्या स्पष्ट रूप से कॉल करने का एक तरीका है। –

संबंधित मुद्दे