sql-server - SQL SERVER ODBC 错误(对象名称无效),但是当我添加 SQL 查询 mydb.dbo.mytable 时一切正常

标签 sql-server schema odbc connection-string

我有一个旧的 asp.net 1 项目(它在旧服务器上运行良好,mytable 存在于数据库中。现在我正在尝试将其升级到 asp.net 4

我的连接字符串是:

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

我收到错误

ERROR [42S02] [Microsoft][ODBC SQL Server Driver][SQL Server]Invalid object name 'mytable'.

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

当我将 SQL 编写为 select * from mydb.dbo.mytable 时,一切正常

我应该在数据库设置(安全性、架构、dbo)或连接字符串中更改哪些内容?

最佳答案

看到您使用的是 ODBC,我的猜测是您的 ODBC 连接没有指定默认数据库,因此它使用的是 master。

您可以:

  • 使用“Database=myDBname”或“InitialCatalog=myDBname”在连接字符串中指定数据库
  • 更改 ODBC 连接中的默认数据库,如 XP/Server 2003 SQL Server ODBC 中所示

关于sql-server - SQL SERVER ODBC 错误(对象名称无效),但是当我添加 SQL 查询 mydb.dbo.mytable 时一切正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7504006/

相关文章:

c# - 使用Prism 4的完整示例应用程序

sql - 通过 Min/Max/Avg 操作对表中的值进行分组

sql-server - 是否有一个列出所有文件组的系统表?

sql - 如果不等于,则仅获取一行

perl - 如何使用 DBD::ODBC 指定端口号?

MySQL ODBC 5.3 64 位安装

json - 无法让智能感知适用于 Windows 终端 settings.json

sql - 不同模式中的触发器

java - jOOQ - 将架构名称添加到所有表

sql-server - 如何在 ODBC 中启动事务?