Часто возникающие проблемы с базами данных в ADO.NET

Приветствую всех! В этой статье я буду описывать частые проблемы которые встречаются при работе с базами данных в ADO.NET. Тема будет расти по мере возможности, добавляя новые решения проблема при работе в ADO.NET

  • Как после вставки данных, сохранить их в базе данных C#?

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

  • После вставки данных, в базу данных, русские символы заменяются вопросительным знаком C#

Все дело в кодировки исправить эту ситуацию можно не сколькими способами. Установить кодировку в студии при локальной базе данных не возможно, но можно сделать в Microsoft SQL Server Management Studio при создании базы данных. Так же можно указать при вставки данных символ N что позволяет сохранить в utf8 кодировке.

insertCommand.CommandText = String.Format("INSERT Registr VALUES (N'{0}', N'{1}', N'{2}', N'{3}', N'{4}')",
textBox1.Text, textBox2.Text, textBox3.Text, textBox4.Text, textBox5.Text); //создаем команду вставки

Есть еще один способ и он является более правильным использовать параметры команды:

 using (var con = new SqlConnection(@"Data Source = (LocalDB)\MSSQLLocalDB; AttachDbFilename =" + Application.StartupPath + @"\Database1.mdf; Integrated Security = True"))
            {
                string sql = "insert into [Registr] (Имя, Фамилия, Отчество, Логин, Пароль) values (@Имя, @Фамилия, @Отчество, @Логин, @Пароль)";
                SqlCommand cmd = new SqlCommand(sql, con);
                // Читатели
               
                cmd.Parameters.AddWithValue("@Имя", textBox1.Text);
                cmd.Parameters.AddWithValue("@Фамилия", textBox2.Text);
                cmd.Parameters.AddWithValue("@Отчество", textBox3.Text);
                cmd.Parameters.AddWithValue("@Логин", textBox4.Text);
                cmd.Parameters.AddWithValue("@Пароль", textBox5.Text);
                

                con.Open();
                int rowAffected = cmd.ExecuteNonQuery();
                MessageBox.Show("Пользователь был добавлен" + rowAffected);
            }
Обновлено: 26.05.2019 — 14:27

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

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