2009-07-22 10 views
5

में है कि पहले से ही उत्पन्न मैं एक साधारण समस्या यह है कि कोई Excel फ़ाइल (इंटरॉप उपयोग करते हुए) को पढ़कर उस पर से निकाला कुछ डेटा के साथ एक MSSQL डेटाबेस फ़ाइल भरता है। यह अभी तक ठीक है।LINQ - डेटाबेस एक महत्वपूर्ण उपयोग

  • ID: पूर्णांक, स्वत: जनरेट, स्वत: समन्वयन: डालने पर
  • नाम: स्ट्रिंग
  • निपटान: स्ट्रिंग
  • काउंटी: मैं निम्नलिखित क्षेत्रों के साथ एक दुकान तालिका है स्ट्रिंग
  • पता: स्ट्रिंग

मैं एक्सेल फ़ाइल को पढ़ने, और फिर बनाने के लिए एक नया दुकानें वस्तु और नाम, निपटान, काउंटी और पता गुण सेट ies और मैं नई दुकानें ऑब्जेक्ट के साथ दुकानें। InsertOnSubmit() को कॉल करता हूं।

इस के बाद मैं, डेटाबेस (कम से कम, टेबल) पुनर्स्थापित करने के लिए है, जो के लिए सबसे आसान तरीका मैंने पाया DeleteDatabase() विधि कॉल करने के लिए और उसके बाद() फिर से CreateDatabase फोन था। समस्या यह है कि, पहली रीसेट के बाद, जब मैं तालिका को फिर से भरने का प्रयास करता हूं, तो मुझे अपवाद मिलता है: डेटाबेस ने एक कुंजी उत्पन्न की जो पहले से उपयोग में है।

इसके अतिरिक्त, उस बिंदु से, मैं उस डेटाबेस फ़ाइल का उपयोग करने में असमर्थ हूं, क्योंकि डेटाबेसएक्सिस्ट्स() FALSE लौटाता है, लेकिन जब मैं CreateDatabase() विधि को कॉल करता हूं, तो यह एक अपवाद फेंकता है, कि डेटाबेस पहले से मौजूद है (हालांकि डेटा फाइल मौजूद नहीं है)।

मैं क्या गलत कर रहा हूं? अग्रिम में बहुत बहुत धन्यवाद!

उत्तर

4

ऐसा लगता है कि आप बुद्धिमान से परे डेटा-संदर्भ का पुनः उपयोग कर रहे हैं। डेटाबेस को हटाने के बाद डेटा-संदर्भ का निपटान और पुन: निर्माण करने का प्रयास करें।

मुझे संदेह है कि समस्या यह है कि पहचान प्रबंधक अभी भी वस्तुओं को ट्रैक कर रहा है (डेटाबेस को नष्ट करना और पुनर्निर्माण करना इतना बढ़िया मामला है कि मुझे लगता है कि हम इसे खुद को रीसेट नहीं करने के लिए माफ कर सकते हैं)।

+0

आपको बहुत धन्यवाद, मैंने डेटाबेस को हटाने के बाद डेटा संदर्भ का निपटारा किया और फिर इसे पुनर्स्थापित किया और इसे फिर से बनाया, इसलिए यह अब काम कर रहा है। आपका बहुत धन्यवाद! एक और बात: मैं अब तक बनाए गए डेटाबेस को 'रिलीज़' कैसे कर सकता हूं? MSSQL मुझे उस नाम के साथ डेटाबेस बनाने की अनुमति नहीं देगा ... – ShdNx

+0

मुझे नहीं पता, मुझे डर है। –

+1

धन्यवाद। मुझे एक ही समस्या थी क्योंकि मैंने डेटाबेस को फिर से तैनात करते समय एएसपी.Net विकास सर्वर चलाया। मुझे पुनर्वितरण से पहले विकास सर्वर को बंद करना याद रखना चाहिए। –

2

मुझे इस त्रुटि का सामना करना पड़ा। मेरे पास एक पहचान के साथ एक लॉग टेबल था। मैं लॉग को छोटा कर रहा था, जबकि मेरा आवेदन चल रहा था। क्या हुआ जब डीबी ने छोटा कर दिया था जब डीबी ने फिर से पहचान कॉलम शुरू किया था, हालांकि डेटा संदर्भ जो मैं लॉग इन करने के लिए उपयोग कर रहा था, उसमें अभी भी वही कुंजी थीं जो एक ही कुंजी के साथ ट्रैकिंग कर रही थीं।

0

मुझे इस त्रुटि का सामना करना पड़ा क्योंकि मैं एक पहचान कॉलम वाली तालिका के साथ सम्मिलित करने के लिए एक कस्टम संग्रहीत प्रक्रिया का उपयोग कर रहा था, लेकिन मैं अपने sproc के अंत में "SET @Id = SCOPE_IDENTITY" को भूल गया था।

मैं वास्तव में जिसके परिणामस्वरूप पहचान मूल्य का उपयोग नहीं किया गया था ताकि समस्या केवल दिखाया जब मैं दो या अधिक पंक्तियों डाला। मुश्किल बग

+0

मुझे एक ही त्रुटि का सामना करना पड़ता है, क्या आप sp के आउटपुट पैरामीटर के रूप में @Id सेट करते हैं? – liang

+0

मैं शायद आउटपुट पैरामीटर के रूप में @Id का उपयोग कर रहा था। क्षमा करें, मैं निश्चित रूप से याद नहीं कर सकता, वह बहुत समय पहले था और मेरी याददाश्त इतनी मजबूत नहीं है :)। –

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