2011-09-21 9 views
5

मैं है एक पुराने asp.net 1 परियोजना (यह पुरानी सर्वर पर ठीक काम करता है, mytable डाटाबेस में मौजूद हैं। अब मैं इसे उन्नत करने के लिए asp.NET करने के लिए 4एसक्यूएल सर्वर ODBC त्रुटि (अमान्य ऑब्जेक्ट नाम) लेकिन जब मैं SQL क्वेरी में जोड़ने mydb.dbo.mytable सब ठीक काम करता है

मेरे कनेक्शन स्ट्रिंग कोशिश कर रहा हूँ है:

<add key="SqlConnection" 
    value="DRIVER={SQL Server};SERVER=bel\SQLEXPRESS;Trusted_connection=yes;DAT­ABASE=mydb;option=3;"/> 

मैं त्रुटि

त्रुटि [42S02] [माइक्रोसॉफ्ट] [ODBC SQL सर्वर ड्राइवर] [ एसक्यूएल सर्वर] अवैध ऑब्जेक्ट नाम 'mytable'।

ओडीबीसी कॉमांड डेटा कमांड = नया ओडीबीसी कॉमांड ("मेरा * से चुनें *, डेटा कनेक्शन);
डेटा कमांड.कॉमैंडटाइमआउट = 900;
OdbcDataReader DataReader = dataCommand.ExecuteReader (CommandBehavior.CloseConnection);

जब मैं select * from mydb.dbo.mytable के रूप में एसक्यूएल लिखा सब ठीक काम करता है

क्या मैं db सेटिंग्स (सुरक्षा, स्कीमा, dbo) में या कनेक्शन स्ट्रिंग में बदलना चाहिए?

+0

बस हमेशा स्कीमा निर्दिष्ट - जैसे 'Dbo.MyTable' सिर्फ' MyTable' के बजाय का उपयोग करें - तो कोशिश 'dbo.mytable' से चयन * - कि काम करता है? –

उत्तर

11

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

आप या तो:

  • का उपयोग कर "डेटाबेस = myDBname" अपने कनेक्शन स्ट्रिंग में डेटाबेस तैयार करें या "InitialCatalog = myDBname"
  • परिवर्तन आपके ODBC संबंध में डिफ़ॉल्ट डेटाबेस, के रूप में XP में यहाँ दिखाया गया है/सर्वर 2003 SQL Server ODBC
संबंधित मुद्दे