Данные, которые я вставил, не отображаются в базе данных - PullRequest
0 голосов
/ 10 апреля 2020

enter image description here

У меня есть форма, которая выглядит следующим образом. Всякий раз, когда я вставляю имя и возраст в базу данных и нажимаю Показать, он показывает мне все записи (включая те, которые я только что вошел), но в dbo.Table он не обновляется, каждый раз, когда я пытаюсь refre sh, он выдает ошибку вроде этого ![enter image description here

Я создал база данных с помощью Add-> New Item-> Service Base Data Basease

Это код для вставки данных:

private void button1_Click(object sender, EventArgs e)
    {

        string sql = "Insert into Elevi(Name,Age) values(@Name,@Age)";
         command = new SqlCommand(sql, myConnection);
        try
        {
            command.Parameters.AddWithValue("@Name", textBox1.Text);
            command.Parameters.AddWithValue("@Age", Convert.ToInt32(textBox2.Text));

            command.ExecuteNonQuery();
        }
        catch(Exception a)
        {
            MessageBox.Show(a.Message);
        }


    }

Это код для отображения данных:

private void button2_Click(object sender, EventArgs e)
        {
            string sql;
            try
            {
                sql = "Select * from Elevi";
                command = new SqlCommand(sql, myConnection);

                dataReader = command.ExecuteReader();

                while (dataReader.Read())
                {
                    int IdCitit = Int32.Parse(dataReader.GetValue(0).ToString());
                    string NumeCitit = dataReader.GetValue(1).ToString();
                    int VarstaCitita = Int32.Parse(dataReader.GetValue(2).ToString());

                    MessageBox.Show($"Nume : {NumeCitit} \n Varsa : {VarstaCitita} \n Id: {IdCitit}");

                }
            }
            catch (Exception Exceptie)
            {
                MessageBox.Show(Exceptie.Message);
            }

        }

Например, если у меня есть следующий ввод и я нажимаю кнопку для печати данных, он будет работать нормально enter image description here, но после того, как я закрою форму и проверю dbo.Elevi [ Данные] новый ввод не будет вставлен туда

Строка подключения: @ "Источник данных = (LocalDB) \ MSSQLLocalDB; AttachDbFilename = | DataDirectory | \ TestareDataBase.mdf; Интегрированная безопасность = True"

Я получил это от Project-> Добавить новый источник данных

Ответы [ 2 ]

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

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

попробуйте это:

private void button1_Click(object sender, EventArgs e)
{

    using (SqlConnection connection = new SqlConnection(myConnection))
    {
        SqlCommand command = connection.CreateCommand();
        SqlTransaction transaction = connection.BeginTransaction("MyTransaction");

        command.Connection = connection;
        command.Transaction = transaction;
        try
        {
            command.CommandText = $"Insert into Elevi(Name,Age) values({textBox1.Text},{textBox2.Text})";
            command.ExecuteNonQuery();
            transaction.Commit();
        }
        catch(Exception a)
        {
            MessageBox.Show(a.Message);
        }
    }
}
0 голосов
/ 10 апреля 2020

Я думаю, что ваш код не является неправильным, он выглядит как ошибка базы данных. Возможно, файл базы данных был создан с более новой версией SQL Server Express, чем та, что установлена ​​на вашем компьютере? Ваши SQL инструменты в VS не совместимы с SQL сервером. Проверьте версии SQL инструментов.

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