ASP.NET Core查询users表触发Microsoft.Data.SqlClient.SqlException(0x80131904)
问题解决:SqlException提示“users对象名无效”但表实际存在
核心原因
你的数据库连接字符串未指定要连接的目标数据库。SqlConnection默认会连接到用户账户的默认数据库(通常是master),而你的users表并不在这个默认库中,因此触发“对象名无效”的异常。
修复方法
在Db类的连接字符串中添加Initial Catalog=你的数据库名称;,指定正确的数据库:
public async Task<SqlConnection> OpenConnection() { var con = new SqlConnection(); // 注意添加Initial Catalog指定数据库 con.ConnectionString = "Data Source=localhost;Initial Catalog=你的数据库名;User ID=*****;Password=********;Connect Timeout=30;Encrypt=False;Trust Server Certificate=True;Application Intent=ReadWrite;Multi Subnet Failover=false"; if (con.State != ConnectionState.Open) await con.OpenAsync(); return con; }
额外排查项
如果修复后仍有问题,可以检查以下几点:
- 表名拼写是否完全一致(注意SQL Server在区分大小写的排序规则下,大小写错误会导致找不到表)
- 确认当前数据库用户对
users表有查询权限 - 表是否属于特定架构(比如
dbo),查询时可以明确指定架构:SELECT * FROM dbo.users - 验证数据库名称是否正确,避免拼写错误
内容的提问来源于stack exchange,提问作者Александр Мун
相关产品推荐
相关产品推荐

