2011-09-21 20 views
5

Mam stary projekt asp.net 1 (działa dobrze na starym serwerze, istnieje możliwość mytable w db. staram się uaktualnić go do ASP.NET 4SQL SERVER ODBC ERROR (Niepoprawna nazwa obiektu), ale kiedy dodaję zapytanie SQL mydb.dbo.mytable wszystkie działa dobrze

Moje ciąg połączenia jest:

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

otrzymuję błąd

eRROR [42S02] [Microsoft] [ODBC SQL Server Driver] [ SQL Serwer] Niepoprawna nazwa obiektu 'mytable'.

OdbcCommand dataCommand = nowa OdbcCommand ("wybierz * z mytable", dataConnection);
dataCommand.CommandTimeout = 900;
OdbcDataReader dataReader = dataCommand.ExecuteReader (CommandBehavior.CloseConnection);

Kiedy pisałem SQL jako select * from mydb.dbo.mytable wszystko działa dobrze

Co należy zmienić w ustawieniach dB (bezpieczeństwo, schemat dbo) lub w ciągu połączenia?

+0

Po prostu zawsze określ schemat - np. użyj 'dbo.MyTable' zamiast tylko' MyTable' - więc spróbuj 'select * from dbo.mytable' - czy to działa? –

Odpowiedz

11

Domyślam się, że używasz ODBC, ponieważ twoje połączenie ODBC nie określa domyślnej bazy danych, więc używa master.

Można:

  • określić bazę danych w ciągu połączenia za pomocą "Database = myDBname" lub "InitialCatalog = myDBname"
  • zmiana domyślna baza danych w połączeniu ODBC, jak pokazano tutaj w XP/Server 2003 SQL Server ODBC