SQL Сервер Express таблица базы данных не обновляется - PullRequest
1 голос
/ 25 апреля 2020

Интересно, почему моя таблица базы данных SQL Сервер Express не обновляется при успешном выполнении описанного ниже метода?

public void addUser(User user)
{
    string query = "INSERT INTO users (username, password, firstname, lastname, isactive, accesslevel) VALUES (@usr,  @psw, @fname, @lname, @status, @access)";

    pSqlConn = new SqlConnection(pConnectingString);

    SqlCommand cmd = new SqlCommand(query, pSqlConn);

    SqlParameter pmtrUsername = new SqlParameter("@usr", user.Username);
    SqlParameter pmtrPassword = new SqlParameter("@psw", user.Password);
    SqlParameter pmtrFirstname = new SqlParameter("@fname", user.Firstname);
    SqlParameter pmtrLastname = new SqlParameter("@lname", user.Lastname);
    SqlParameter pmtrStatus = new SqlParameter("@status", user.IsActive);
    SqlParameter pmtrAccessLevel = new SqlParameter("@access", user.AccessLevel);

    cmd.Parameters.Add(pmtrFirstname);
    cmd.Parameters.Add(pmtrLastname);
    cmd.Parameters.Add(pmtrUsername);
    cmd.Parameters.Add(pmtrPassword);
    cmd.Parameters.Add(pmtrStatus);
    cmd.Parameters.Add(pmtrAccessLevel);

    pSqlConn.Open();
    cmd.ExecuteNonQuery();

    System.Windows.Forms.MessageBox.Show("Success!");
    pSqlConn.Close();
}

Ответы [ 2 ]

1 голос
/ 25 апреля 2020

Весь пользовательский экземпляр и AttachDbFileName = подход ошибочен - в лучшем случае! При запуске приложения в Visual Studio оно будет копироваться вокруг файла .mdf (из вашего каталога App_Data в выходной каталог - обычно .\bin\debug - там, где работает ваше приложение) и , наиболее вероятно , ваш INSERT работает просто отлично - но вы просто смотрите неправильный файл .mdf в конце!

Если вы хотите придерживаться этого подхода, попробуйте поставить точку останова на вызове myConnection.Close() - и затем проверить файл .mdf с помощью SQL Server Mgmt Studio - я почти уверен, что ваши данные

Реальное решение 1018 *, по моему мнению, было бы

  1. установить SQL Сервер Express (и вы уже все равно это сделано)

  2. установить SQL Server Management Studio Express

  3. создать базу данных в SSMS Express, дайте ему логическое имя (например, StoreManagerDB)

  4. подключитесь к нему, используя его логическое имя базы данных (дается при создании его на сервере) - и не связывайтесь с физическими файлами базы данных и пользовательскими экземплярами. В этом случае строка подключения будет выглядеть примерно так:

    Data Source=.\\SQLEXPRESS;Database=StoreManagerDB;Integrated Security=True
    

    , а все остальное точно так же, как и раньше ...

Также см. Отличный пост в блоге Аарона Бертрана Вредные привычки: использовать AttachDbFileName для получения дополнительной информации.

0 голосов
/ 25 апреля 2020

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...