2015-01-12 4 views
1

Я создал веб-форму с помощью настраиваемого элемента управления для доступа к локальной базе данных SQL Server. База данных содержит таблицу с именем Employees с различной информацией о сотруднике, однако соответствующие столбцы для моего вопроса: EmployeeID (первичный ключ), Username и Password.Проблема с запросом базы данных SQL Server с помощью C#

Я пытаюсь запросить базу данных, используя имя пользователя и пароль, введенные в элемент управления входами, чтобы получить EmployeeID. Исключение возникает при попытке ExecuteScalar(). Исключение указывает, что «Сотрудники» являются недопустимым именем объекта, поэтому я подозреваю, что моя проблема - это строка подключения. Я получил строку подключения, просмотрев свойства базы данных в SQL Server 2014 Management Studio, где я также создал db. Другая догадка заключается в том, что аутентификация при подключении к 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(); 
} 
+0

Ваша строка подключения предназначена для надежной защиты. Это означает, что он подключается с использованием учетной записи безопасности, указанной на веб-сайте, а не учетной записи пользователя, с которой вы вошли в систему. –

+0

Что такое cmd? Я не вижу его в объявленном коде. – Cosmin

+2

Пожалуйста, для любви ко всему, что хорошо ......... параметризуйте ваши запросы sql. Ищите «никогда не делайте этого» (это то, что вы делаете в приведенном выше) в этой статье, и найдите лучший способ сделать это. http://www.csharp-station.com/Tutorial/AdoDotNet/lesson06 – granadaCoder

ответ

0

Как Мартин упоминается в комментариях, учетная запись, запуск приложения потребуется доступ к серверу и базе данных, а также выбор разрешения на столе сотрудников. Кроме того, если предоставленный код не только для примера, то по соображениям безопасности вам не следует хранить фактические пароли в своей базе данных, и вы захотите проверить вход для защиты от атак SQL-инъекций.