通过 C# 查询 SQL Server 数据库时出现问题

本文关键字:问题 数据库 Server 查询 SQL 通过 | 更新日期: 2023-09-27 18:37:12

我使用自定义登录控件创建了一个 Web 窗体来访问本地 SQL Server 数据库。该数据库包含一个名为 Employees 的表,其中包含有关员工的各种信息,但是,我的问题的相关列是 EmployeeID(主键)、UsernamePassword

我正在尝试使用登录控件中输入的用户名和密码查询数据库以检索EmployeeID。尝试 ExecuteScalar() 时引发异常。异常指出"员工"是无效的对象名称,因此我怀疑我的问题是连接字符串。我通过在 SQL Server 2014 Management Studio 中查看数据库的属性来检索连接字符串,这也是我创建数据库的位置。另一个猜测是连接到数据库时的身份验证。我不太确定,所以有人可以帮忙吗?

string connectionString = "Data Source=(LocalDB)''MSSQLLocalDB;AttachDbFilename=C:''Users''Joshua''AppData''Local''Microsoft''VisualStudio''SSDT''SignProDatabase''SignProDatabase.mdf;Integrated Security=True;Connect Timeout=30";
string query = "select EmployeeID from Employees where Username = 'user' and Password = 'pass'";
SqlConnection connection = new SqlConnection(connectionString);
connection.Open();
SqlDataAdapter adapter = new SqlDataAdapter();
adapter.SelectCommand = new SqlCommand(query, connection);
try
{
    object test = cmd.ExecuteScalar();
    Console.WriteLine(test.ToString());
}
catch(Exception err)
{
    Console.WriteLine("Exception Message: " + err);
    Console.ReadLine();
}

通过 C# 查询 SQL Server 数据库时出现问题

正如Martin在评论中提到的,运行应用程序的帐户将需要访问服务器和数据库,以及对"雇员"表的选择权限。 此外,如果提供的代码不仅仅是例如,那么出于安全原因,您不应该将实际密码存储在数据库中,而是需要验证输入以防止SQL注入攻击。