2012-07-18 24 views
5

पर किसी भी पंक्ति को जोड़ नहीं रहा है SQL सर्वर एक्सप्रेस .mdf डेटाबेस के साथ इकाई फ्रेमवर्क 4.1 के साथ कार्य करना।इकाई फ्रेमवर्क 4.1 SQL सर्वर एक्सप्रेस डेटाबेस

परीक्षण उद्देश्य के लिए मैं एक WPF अनुप्रयोग में एंटीटी मॉडल का उपयोग कर SQL सर्वर एक्सप्रेस डेटाबेस पर CRUD संचालन करने की कोशिश कर रहा हूं।

मैं इस अवधारणा के लिए नया हूँ, और मैं वीडियो ट्यूटोरियल का पालन किया और अनुसार कि

मैं एक बहुत ही सरल तालिका के इकाई मॉडल बनाया कोडिंग किया। और मैं सीएस फ़ाइल में सरल कोड लिखा निम्नलिखित कोड का उपयोग कर डेटाबेस के लिए एक पंक्ति जोड़ने प्रदर्शन करने के लिए

testEntities db = new testEntities(); 
TestTable tb = new TestTable(); 
tb.Name = txtName.Text; 
tb.Email = txtMail.Text; 
db.TestTables.AddObject(tb); 
db.SaveChanges(); 

लेकिन अगर मैं वापस जाने के लिए डेटाबेस में कोई डेटा नहीं जोड़ा जाता है की जाँच करें। कृपया मुझे बताएं कि क्या गलत हो रहा है ?? सबसे अच्छे रूप में -

और यहाँ मेरे कनेक्शन स्ट्रिंग

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <connectionStrings> 
    <add name="testEntities" 
     connectionString="metadata=res://*/DBModel.csdl|res://*/DBModel.ssdl|res://*/DBModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=.\SQLEXPRESS;attachdbfilename=|DataDirectory|\test.mdf;integrated security=True;connect timeout=30;user instance=True;multipleactiveresultsets=True;App=EntityFramework&quot;" 
     providerName="System.Data.EntityClient" /> 
    </connectionStrings> 
</configuration> 
+0

@marc_s मैं सवाल अद्यतन और कनेक्शन स्ट्रिंग जोड़ लिया है। । मैं गलत जा रहा हूँ – panindra

+0

कोई त्रुटि संदेश? क्या आपने क्या चल रहा है यह देखने के लिए कदम से ऐप चरण को डीबग करने का प्रयास किया है? डीबगर आपका सबसे अच्छा दोस्त है, इसका इस्तेमाल करना सीखें। आपके द्वारा दिखाया गया कोड ठीक दिखता है, मैं शर्त लगाता हूं कि कहीं और समस्या है (जैसे आप हैंडलर और इसी तरह की चीजें भी तार करना भूल गए हैं)। – walther

+0

@ वाल्टहेरन मुझे कोई त्रुटि नहीं मिल रही है। मैंने कोशिश की कोशिश की है कि यह आपके सुझाव के लिए ठीक है – panindra

उत्तर

6

पूरे उपयोगकर्ता उदाहरण और AttachDbFileName = दृष्टिकोण से दोषपूर्ण है है! विजुअल स्टूडियो, .mdf फ़ाइल (DataDirectory से अपने चल रहे एप्लिकेशन के उत्पादन निर्देशिका के लिए) और सबसे अधिक संभावना आसपास को कॉपी किया जाएगा अपने INSERT काम करता है ठीक है - लेकिन तुम सिर्फ अंत में गलत .mdf फ़ाइल पर देख रहे हैं !

आप इस दृष्टिकोण के साथ रहना चाहते हैं, तो .SaveChanges() कॉल पर एक ब्रेकपाइंट डालने की कोशिश - और फिर एसक्यूएल सर्वर Mgmt स्टूडियो एक्सप्रेस के साथ चल रहे एप्लिकेशन की निर्देशिका में .mdf फ़ाइल का निरीक्षण - मैं लगभग कुछ कर रहा हूँ अपने डेटा नहीं है । मेरी राय में

वास्तविक समाधान

  1. होगा SQL सर्वर एक्सप्रेस स्थापित (और आप पहले से ही किया है वैसे भी है कि)

  2. एसक्यूएल सर्वर प्रबंधन स्टूडियो एक्सप्रेस स्थापित

  3. एसएसएमएस एक्सप्रेस में अपना डेटाबेस बनाएं, इसे एक तार्किक नाम दें (उदाहरण के लिए TestDatabase)

  4. इसके लॉजिकल डेटाबेस नाम (जब आप इसे सर्वर पर बनाते हैं) का उपयोग करके उससे कनेक्ट होते हैं - और भौतिक डेटाबेस फ़ाइलों और उपयोगकर्ता उदाहरणों के साथ गड़बड़ नहीं करते हैं। उस मामले में, अपने कनेक्शन स्ट्रिंग की तरह कुछ होगा:

    Data Source=.\\SQLEXPRESS;Database=TestDatabase;Integrated Security=True 
    

    और बाकी सब कुछ वास्तव में पहले की तरह ही है ...

+0

thansk। मैं एक बार फिर से स्क्रैच बनाने की कोशिश करूंगा – panindra

+1

मैं इस विश्लेषण से सहमत हूं। मुझे एसएसई में एमडीएफ संलग्न करने से नफरत है, इससे बहुत सारे अजीब मुद्दे पैदा हो सकते हैं। मैं एसएसएमएस में एसएसई डीबी बनाउंगा, जैसे कि आप पूर्ण उड़ाए गए एसक्यूएल सर्वर में होंगे, और उस प्रारूप के लिए कनेक्शन स्ट्रिंग का उपयोग करें, एमडीएफ का उपयोग न करें। इससे आपको कम सिरदर्द देना चाहिए। – GrayFox374

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