2011-05-10 17 views
5

मेरे पास फ़ाइल C:\Users\Pawel\Documents\DB.sdf फ़ाइल में डेटाबेस है। मैं उससे कैसे जुड़ सकता हूं?.sdf डेटाबेस से कनेक्ट करने का प्रयास करते समय अपवाद

नीचे सरल कोड काम नहीं करता है और अपवाद उत्पन्न करता है।

कोड:

[WebMethod] 
public String TestCon() 
{ 
    SqlConnection sql = new System.Data.SqlClient.SqlConnection(
     @"Data Source=C:\Users\Pawel\Documents\DB.sdf"); 

    string str = "OK"; 

    try 
    { 
     sql.Open(); 
     sql.Close(); 
    } 
    catch (Exception ex) 
    { 
     str = ex.Message; 
    } 

    return str; 
} 

परिणाम:
A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified)

मैं क्या याद आ रही है? कनेक्शन को सही तरीके से खोलने के लिए मुझे क्या करना चाहिए?

संपादित करें:
System.NotSupportedException: SQL Server Compact is not intended for ASP.NET development.
महान: पी

+0

क्या आप एसक्यूएल कॉम्पैक्ट का उपयोग कर रहे हैं? मुझे लगता है कि आप सामान्य SQL क्लाइंट –

उत्तर

8

System.Data.SqlServerCe.SqlCeConnection उपयोग पर विचार करें:

System.Data.SqlServerCe.SqlCeConnection con = 
    new System.Data.SqlServerCe.SqlCeConnection(@"Data Source=C:\Users\Pawel\Documents\DB.sdf"); 

, करने के लिए (System.Data.SqlServerCe के लिए एक संदर्भ, यदि आवश्यक हो तो जोड़े)

इसके अलावा इसे एएसपी.नेट के साथ प्रयोग करें, जोड़ें:

AppDomain.CurrentDomain.SetData("SQLServerCompactEditionUnderWebHosting", true); 
+0

का उपयोग कर रहे हैं टाइप या नेमस्पेस नाम 'SqlServerCe' नामस्थान 'System.Data' में मौजूद नहीं है (क्या आप असेंबली संदर्भ खो रहे हैं?) – Ichibann

+1

हां, आपको सिस्टम में संदर्भ जोड़ना होगा .Data.SqlServerCe असेंबली। – Larry

+0

आपको अपनी परियोजना में System.Data.SqlServerCe का संदर्भ जोड़ना चाहिए। (समाधान एक्सप्लोरर में 'संदर्भ' पर राइट क्लिक करें, 'संदर्भ जोड़ें', शेष आसान है) – Dmitry

1

जाहिर है, आप एक एसक्यूएल कॉम्पैक्ट संस्करण (एसडीएफ फ़ाइल) का उपयोग कर रहे हैं। क्या आपने SqlConnection के बजाय SqlCeConnection का उपयोग करने का प्रयास किया है?

बोनस के रूप में: यदि आप अब कनेक्शनस्ट्रिंग के साथ गड़बड़ नहीं करना चाहते हैं, तो कृपया this आज़माएं।

ऐसा करें, आपको System.Data.SqlServerCe असेंबली का संदर्भ जोड़ना होगा।

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

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