2011-09-21 11 views
5

Ho un vecchio progetto asp.net 1 (funziona bene sul vecchio server, mytable esiste in db. sto cercando di aggiornarlo ad aSP.NET 4ERRORE ODBC SQL SERVER (Nome oggetto non valido) ma quando aggiungo query SQL mydb.dbo.mytable va tutto bene

mia stringa di connessione è:

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

ottengo l'errore

eRRORE [42S02] [Microsoft] [driver ODBC SQL Server] [ Server SQL ] Nome oggetto non valido 'mytable'.

OdbcCommand dataCommand = new OdbcCommand ("seleziona * da mytable", dataConnection);
dataCommand.CommandTimeout = 900;
OdbcDataReader dataReader = dataCommand.ExecuteReader (CommandBehavior.CloseConnection);

Quando ho scritto SQL come select * from mydb.dbo.mytable tutto funziona benissimo

Cosa devo cambiare nelle impostazioni db (sicurezza, schema, DBO) o in stringa di connessione?

+0

Specifica sempre lo schema, ad es. usa 'dbo.MyTable' invece di solo' MyTable' - quindi prova 'select * da dbo.mytable' - funziona? –

risposta

11

Suppongo che, visto che si sta utilizzando ODBC, la connessione ODBC non specifichi un database predefinito e quindi utilizzi il master.

È possibile:

  • specificare il database nella stringa di connessione utilizzando "Database = myDBname" o "InitialCatalog = myDBname"
  • modificare il database predefinito nella vostra connessione ODBC, come illustrato qui a XP/Server 2003 SQL Server ODBC