Member 12650438 Ответов: 1

Запрос относительно SQL-соединения


привет, когда я пытаюсь связаться с dabase, он показывает ошибку. даже я установил Microsoft engine 12.0 в настоящее время я работаю с visual stuio 2012 и backend sql server 2008.

вот мой код для sql

If Trim(UsernameTextBox.Text) = "" Or Trim(PasswordTextBox.Text) = "" Then
          MsgBox("Please Enter Both Fields!", vbInformation, "Note")
      Else
          con.Open()
          Dim sql = "SELECT * FROM tblUser WHERE username = '" & SafeSqlLiteral(UsernameTextBox.Text, 2) & "' AND password = '" & SafeSqlLiteral(PasswordTextBox.Text, 2) & "'"

          Dim cmd = New OleDbCommand(sql, con)
          Dim dr As OleDbDataReader = cmd.ExecuteReader

          Try
              If dr.Read = False Then
                  MsgBox("Login Failed!", vbCritical, "Note")
              Else
                  MsgBox("Login Successful!", vbInformation, "Note")
                  frmMain.status.Items(0).Text = "Login as : " & Trim(UsernameTextBox.Text)
                  Dim datenow As Date = Now
                  frmMain.status.Items(2).Text = "Date and Time : " & datenow.ToString("MMMM dd, yyyy") & " " & TimeOfDay
                  con.Close()
                  Me.Hide()
                  frmMain.ShowDialog()
              End If
          Catch ex As Exception
              MsgBox(ex.Message)

          End Try

          con.Close()
      End If


Что я уже пробовал:

я попытался подключиться к серверной базе данных, чтобы получить доступ к данным после успешного входа в систему.

an0ther1

Привет,

Пожалуйста, улучшите свой вопрос, указав, где вы получаете сообщение об ошибке - я бы предположил, что это происходит, когда вы нажимаете на строку " con.Открыть()"
Если это так, то проблема связана со строкой подключения - обратитесь к Строки подключения SQL для допустимой строки подключения для SQL Server - вам не нужен Microsoft Engine 12.0, так как почти каждая версия Windows, начиная с XP, поставляется с готовой поддержкой SQL.
с уважением

Maciej Los

Как определяется переменная "con"? Воспользуйся Ответить виджет

Member 12650438

-- код был удален --
это полный код Maciej los

Maciej Los

Не размещайте код в комментариях. Вместо этого, Улучшите свой вопрос!

Похоже, объект/переменная" con " нигде не были определены.

Member 12650438

где это должно быть определено

1 Ответов

Рейтинг:
12

Maciej Los

2 вещи:
1) а con объект нигде не был определен!
2) Не используйте конкатенацию строк для построения sql-запроса. Кроме того, используйте параметризованные запросы.

Для получения более подробной информации, пожалуйста, смотрите:
Класс SqlConnection (System. Data.SqlClient)[^]
Конструктор Sqlcommand Объект (Строка, Объект Sqlconnection) (Система.Данных.Поставщики sqlclient)[^]
Коллекции sqlparametercollection.Добавить Метод (String, SqlDbType, Int32) (System. Data.SqlClient)[^]
Строки подключения SQL Server - ConnectionStrings.com[^]

string connectionString = "Your connection string here!";
string commandText = "SELECT * FROM YourTable WHERE Field1 = @param1 AND Field2 = @param2";

using (SqlConnection connection = new SqlConnection(connectionString))
{
    SqlCommand command = new SqlCommand(commandText, connection);
    command.Parameters.Add("@param1", SqlDbType.NVarChar, 50);
    command.Parameters["@param1"].Value = "user1";
    command.Parameters.Add("@param2", SqlDbType.NVarChar, 50);
    command.Parameters["@param2"].Value = "password";

    try
    {
        connection.Open();
        //execute command here!


    }
    catch (Exception ex)
    {
        Console.WriteLine(ex.Message);
    }
}


Member 12650438

не могли бы вы, пожалуйста, изменить мой код с исправлением проблемы?

Maciej Los

Извини, но я не могу. Это твоя работа. Когда кто-то другой будет делать эту работу за вас, вы никогда не получите соответствующих знаний.

ridoy

Великий, 5!

Maciej Los

Спасибо.