2011-09-21 23 views
5
Ben, mytable db eski asp.net 1 projesini (eski sunucuda çalışıyor mevcut olan

. Şimdi Ben 4SQL SERVER ODBC HATASI (Geçersiz nesne adı) ama SQL sorgusunda eklerken mydb.dbo.mytable tüm iyi çalışır

Benim bağlantı dizesini asp.net ye yükseltmek çalışıyorum geçerli:

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

alıyorum hata

hATA [42S02] [Microsoft] [ODBC SQL Server sürücüsü] [ SQL Sunucu] Geçersiz nesne adı 'mytable'.

OdbcCommand dataCommand = new OdbcCommand ("mytable from mytable", dataConnection);
dataCommand.CommandTimeout = 900;
OdbcDataReader dataReader = dataCommand.ExecuteReader (CommandBehavior.CloseConnection); Ben select * from mydb.dbo.mytable olarak SQL yazdığımda

tüm gayet iyi çalışıyor

ben db ayarlarına (güvenlik, şema, dbo) veya bağlantı dizesinde değiştirmek gerekir?

+0

Sadece her zaman şemasını belirlemek - örneğin sadece 'MyTable' yerine' dbo.MyTable'ı kullanın - bu yüzden dbo.mytable'dan * seçmeyi deneyin - işe yarıyor mu? –

cevap

11

ODBC kullandığınızı gördüğümde, ODBC bağlantınızın varsayılan bir veritabanı belirtmemesi ve bu nedenle de master kullanmasıdır.

yapabilirsiniz ya:

  • "Veritabanı = myDBname" kullanarak bağlantı dizesinde veritabanı belirtmek veya "InitialCatalog = myDBname" XP'de burada gösterildiği gibi
  • değişiklik ODBC bağlantısı varsayılan veritabanı,/Sunucu 2003 SQL Server ODBC