c# - Sql 数据库 System.Data.SqlClient.SqlException:'无效的对象名称'dbo.LoginTbl'。
问题描述
当我运行我的c#
代码时,我在 sda.Fill(dtbl) 处遇到错误。我遵循了一个在线教程,看来我不是唯一一个遇到这个问题的人。
我不是很有经验c#
!
我收到以下错误:
System.Data.SqlClient.SqlException:'无效的对象名称'dbo.LoginTbl'。'
我的代码:
private void button2_Click_1(object sender, EventArgs e)
{
SqlConnection sqlcon = new SqlConnection(@"Data Source=SPLAYZDK-LAPTOP\SQLEXPRESS01;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False");
string query = "Select * from dbo.LoginTbl Where username = '" + txtUsername.Text.Trim() + "' and password = '" + txtPassword.Text.Trim() + "'";
SqlDataAdapter sda = new SqlDataAdapter(query, sqlcon);
DataTable dtbl = new DataTable();
sda.Fill(dtbl);
if (dtbl.Rows.Count == 1)
{
this.Hide();
MessageBox.Show("Login Auth accepted. Logging in...");
Mainmenu main = new Mainmenu();
main.Show();
}
else
{
MessageBox.Show("User or pass is wrong!");
}
}
我得到了一个 Sql 数据库,该数据库名为SPLAYZDK-LAPTOP\SQLEXPRESS01
一个系统数据库,该数据库名为一个名为CrystalDB
的表dbo.LoginTbl
提前致谢!
解决方案
看起来您正在连接到数据库,但是当它尝试查找表时,它在默认数据库中找不到表。这是因为您没有将 CrystalDB 数据库指定为 dbo.LoginTbl 所在的数据库。
我会查看连接字符串上的“初始目录”字段,您可以在此处查看:https ://docs.microsoft.com/en-us/dotnet/api/system.data.sqlclient.sqlconnection.connectionstring?view= dotnet-plat-ext-3.1
您应该只需要更新您的连接字符串以包含以下内容:
Initial Catalog=CrystalDB;
推荐阅读
- html - 我的 CSS 外部样式表不起作用,我做错了什么?
- python - Salesforce 登录 代理背后的组织
- docker - 当我尝试使用 dockerfile 运行我的 Selenium 项目时,它告诉我找不到 chromedriver
- mysql - 将当前值与先前值进行比较,如果符合条件则列出结果
- arrays - C 程序在释放 char * 数组中的指针后崩溃
- android - 如何获取 android 应用程序的状态栏插图?
- javascript - 如何在对象中推送对象 - javascript
- c++ - 没有指针的类型转换对象
- c# - 使事件每 n 次发生一次
- php - 如何将数组形式的 PHP 字符串转换为实际的数组