2011-06-27 13 views
9

मुझे एक WinForms ऐप पोर्ट करने के लिए कहा गया है जो एक वेबपृष्ठ पर एमवीपी पैटर्न का उपयोग करता है। ऐप, अन्य चीजों के साथ, डेटाटेबल में एक CSV फ़ाइल अपलोड करता है और फिर कुछ काम करता है।डेटा स्रोत नाम नहीं मिला और कोई डिफ़ॉल्ट ड्राइवर निर्दिष्ट नहीं है

CSV फ़ाइल सर्वर ठीक करने के लिए अपलोड की गई है और उसके बाद निम्न कोड

string connectionString = @"Driver={Microsoft Text Driver (*.txt; *.csv)};Extensions=asc,csv,tab,txt;Persist Security Info=False;Dbq=C:\Temp\"; 

//check that file exists and in correct format 
if (File.Exists(this.WorkingFileName)) 
{      
    using (OdbcConnection connection = new OdbcConnection(connectionString)) 
    { 
     // Determine number of rows 
     string selectCount = "select count(*) from [MyFile.csv]"); 

     using (OdbcCommand command = new OdbcCommand(selectCount, connection)) 
     { 
      connection.Open(); 
     } 
    } 
} 

इस बिंदु पर के साथ पठित मैं त्रुटि मिलती है:

ERROR [IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified

अब कोड WinForms में ठीक काम करता है, लेकिन वेब पर विफल रहता है। क्या इस कोड को काम करने के लिए आईआईएस, मेरी कॉन्फ़िगरेशन फ़ाइल या कुछ और में बदलने की आवश्यकता है? या क्या मुझे कुछ और मौलिक करने की ज़रूरत है? जैसे ही WinForms संस्करण, के रूप में 32-बिट चल रहा था के रूप में मैं इसे 64-बिट के लिए बदल दिया यह एक ही त्रुटि फेंक दिया:

अद्यतन

ठीक तो मैं बाहर काम क्या मेरे दो कोड संस्करणों के बीच अलग था । देखें: 32-bit Text drivers (Microsoft Access , Microsoft Excel and Text files) from a 64 bit application on windows 7

चीजों को ठीक करने के लिए मैंने http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=13255 से एक्सेस 64-बिट ड्राइवर स्थापित किए हैं, लेकिन मुझे अभी भी वही त्रुटि मिलती है।

अगर मैं अपने ODBC डेटा स्रोत व्यवस्थापक जाँच मैं "माइक्रोसॉफ्ट एक्सेस पाठ ड्राइवर देख सकते हैं (* .txt, * .csv) | 14.00.47600.1000 | माइक्रोसॉफ्ट कार्पोरेशन | ACEODBC.dll

तो यह वे की तरह दिखता है ' ठीक से स्थापित किया गया है, तो यह अभी भी असफल क्यों होगा?

उत्तर

13

ठीक प्रदान करता है, मैं इस समस्या पाया। बस मेरे समाधान में सभी भागों को सारांशित करने के लिए।

  1. स्थापना रद्द किसी भी 32-बिट कार्यालय क्षुधा
  2. (चरण 2 के लिए आवश्यक) स्थापित करें Access 64-bit drivers
  3. को पुन: इंस्टॉल किसी भी 32-बिट Office एप्लिकेशन
  4. बदलें दो में कनेक्शन स्ट्रिंग here को

    @ "ड्राइवर = {माइक्रोसॉफ्ट एक्सेस टेक्स्ट ड्राइवर (* .txt, *।csv)}; एक्सटेंशन = एएससी, csv, टैब, txt, जारी रहती सुरक्षा जानकारी = झूठी; Dbq = C: \ अस्थायी \ "

ध्यान दें कि:

  1. ड्राइवर नाम बदल दिया गया है करने के लिए Microsoft पहुँच पाठ ड्राइवर
  2. फ़ाइल एक्सटेंशन के लिए सीमांकक एक अल्पविराम करने के लिए एक सेमी-कोलन से बदल दिया गया है।

मैं अल्पविराम परिवर्तन जो मुझे :-(

+1

मैं यह नहीं कह रहा हूं कि यह आपके लिए एक विकल्प था (आपने आवश्यकता को पुष्टि या अस्वीकार नहीं किया था), लेकिन 32 बिट पर वापस लात मारने के बारे में क्या? आईआईएस 7+ मानते हुए, क्या आपने 32-बिट अनुप्रयोग मोड सक्षम करने में ऐप पूल चलाने का प्रयास किया था? मेरी मशीन पर काम करता है! :) – mlhDev

+0

हाँ, मेरी आवश्यकता 64 बिट वेब सर्वर – openshac

+0

ब्रावो पर काम करने के लिए थी! मैं इस मुद्दे के साथ हफ्तों तक संघर्ष कर रहा हूं जब तक कि मुझे आपका समाधान नहीं मिला। –

2

शायद यह संभवतः वेब लाइब्रेरी के लिए जेट लाइब्रेरी स्थापित नहीं है, जो मुझे विश्वास है कि पाठ चालक प्रदान करता है। यह शायद एमएस ऑफिस के साथ आने के कारण स्थानीय रूप से स्थापित है (दोबारा, मेरा मानना ​​है कि यह मामला है)

+0

दर्द का एक बहुत की वजह से मैं दोनों ही मामलों में अपने ही पीसी पर कोड चला रहा हूँ तो कुछ भी स्थापित करने की पहले से स्थापित है की जरूरत है कि स्पॉट नहीं किया। – openshac

0

क्या कनेक्शन स्ट्रिंग अच्छी तरह से बनाई गई है? ऐसा लगता है कि डीबीक्यू पैरामीटर है गलत।

"Driver={Microsoft Text Driver (*.txt; *.csv)};Extensions=asc,csv,tab,txt;Persist Security Info=False;Dbq=**C:Temp\\**" 

इसके अलावा इस link पर एक नज़र डालें, उपयोगी कनेक्शन स्ट्रिंग नमूने

+0

धन्यवाद @ रोड्रिगो, हाँ, मैंने अपनी मूल पोस्ट में अपनी कनेक्शन स्ट्रिंग में एक टाइपो डालने में कामयाब रहे। मैंने अब मूल प्रश्न को सही किया है। – openshac

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

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