无法通过C#查询SQL Server数据库

时间:2015-01-12 19:57:59

标签: c# sql-server

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

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

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();
}

1 个答案:

答案 0 :(得分:0)

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