Предотвращение утечки данных SQL C#

160
03 декабря 2019, 08:30

Проблема с утечкой информации.Пропадает информация из полей access. То ли при запуске программы не получается подключится к бд access,то ли какой то баг моей проги. У меня 2 textbox,1 image (загружается пользователем),1 Listbox.

Как мне оптимизировать мой код чтобы внесенная информация не пропадала? UPD 2

ВСЕ teb.. это комбобоксы

private void vnecti(object sender, RoutedEventArgs e)
    {

        if (nametext.Text.Equals("") && text.Text.Equals(""))
        {
            MessageBoxResult result = MessageBox.Show("Нужно ввести название рецепта и текст рецепта");
        }
        else
        {
            string klantId = nametext.Text; //textbox
            string klantNaam = text.Text; //textbox

            System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection();
            conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Database777.mdb;";

            String ticketno = klantId;
            String Purchaseprice = klantNaam;

            if (desert.IsSelected)
            {
                conn.Open();
                String my_querry = "INSERT INTO Десерт([Название рецепта], [Текст рецепта]) VALUES('" + ticketno + "','" + Purchaseprice + "')";

                OleDbCommand cmd = new OleDbCommand(my_querry, conn);
                cmd.ExecuteNonQuery();
                conn.Close();
            }

        if (ocnov.IsSelected)
        {
            conn.Open();
            String my_querry = "INSERT INTO Основное([Название рецепта], [Текст рецепта]) VALUES('" + ticketno + "','" + Purchaseprice + "')";

            OleDbCommand cmd = new OleDbCommand(my_querry, conn);
            cmd.ExecuteNonQuery();
            conn.Close();
        }
        if (salat.IsSelected)
        {
            conn.Open();

            String my_querry = "INSERT INTO Салат([Название рецепта], [Текст рецепта]) VALUES('" + ticketno + "','" + Purchaseprice + "')";

            OleDbCommand cmd = new OleDbCommand(my_querry, conn);
            cmd.ExecuteNonQuery();
            conn.Close();
        }
        if (vipech.IsSelected)
        {
            conn.Open();
            String my_querry = "INSERT INTO Выпечка([Название рецепта], [Текст рецепта]) VALUES('" + ticketno + "','" + Purchaseprice + "')";

            OleDbCommand cmd = new OleDbCommand(my_querry, conn);
            cmd.ExecuteNonQuery();
            conn.Close();
        }

        if (sup.IsSelected)
        {
            conn.Open();

            String my_querry = "INSERT INTO Суп([Название рецепта], [Текст рецепта]) VALUES('" + ticketno + "','" + Purchaseprice + "')";

            OleDbCommand cmd = new OleDbCommand(my_querry, conn);
            cmd.ExecuteNonQuery();
            conn.Close();
        }

            var encoder = new PngBitmapEncoder();
        encoder.Frames.Add(BitmapFrame.Create((BitmapSource)Firstimage.Source));
        using (var stream = File.Create(@"images//" + nametext.Text + ".png"))
            encoder.Save(stream);
        nametext.Text = "";
        text.Text = "";
        Firstimage.Source = null;
        cartinka.Visibility = Visibility.Collapsed;
        recept.Visibility = Visibility.Collapsed;
        tip.Visibility = Visibility.Collapsed;
        vnectiblock.Visibility = Visibility.Collapsed;
        }

    }
    private void Openrecept_Click(object sender, RoutedEventArgs e)
    {
        vivodcartinki.Visibility = Visibility.Collapsed;
        vivodtext.Visibility = Visibility.Collapsed;

        teb2.Items.Clear();
        teb2.SelectedIndex = -1;
        cartinka.Visibility = Visibility.Visible;
        recept.Visibility = Visibility.Visible;
        tip.Visibility = Visibility.Visible;
        vnectiblock.Visibility = Visibility.Visible;

        teb1.Visibility = Visibility.Hidden;
        teb2.Visibility = Visibility.Hidden;
        teb3.Visibility = Visibility.Hidden;
        teb4.Visibility = Visibility.Hidden;
        teb5.Visibility = Visibility.Hidden;
        teb6.Visibility = Visibility.Hidden;
        teb7.Visibility = Visibility.Hidden;
        teb8.Visibility = Visibility.Hidden;
        teb9.Visibility = Visibility.Hidden;
        teb10.Visibility = Visibility.Hidden;

    }
    private void Openspisok_Click(object sender, RoutedEventArgs e)
    {
        teb1.Visibility = Visibility.Visible;
        teb2.Visibility = Visibility.Visible;
        teb3.Visibility = Visibility.Visible;
        teb4.Visibility = Visibility.Visible;
        teb5.Visibility = Visibility.Visible;
        teb6.Visibility = Visibility.Visible;
        teb7.Visibility = Visibility.Visible;
        teb8.Visibility = Visibility.Visible;
        teb9.Visibility = Visibility.Visible;
        teb10.Visibility = Visibility.Visible;
        cartinka.Visibility = Visibility.Collapsed;
        recept.Visibility = Visibility.Collapsed;
        tip.Visibility = Visibility.Collapsed;
        vnectiblock.Visibility = Visibility.Collapsed;

        System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection();
        conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Database777.mdb;";
        conn.Open();
        String my_querry2 = "SELECT * FROM Десерт ";

        OleDbCommand cmd2 = new OleDbCommand(my_querry2, conn);
        OleDbDataReader reader = cmd2.ExecuteReader();
        while (reader.Read())
        {
            teb2.Items.Add(reader["Название рецепта"].ToString());
        }
        conn.Close();

        conn.Open();
        String my_querry4 = "SELECT * FROM Основное ";

        OleDbCommand cmd4 = new OleDbCommand(my_querry4, conn);
        OleDbDataReader reader3 = cmd4.ExecuteReader();
        while (reader3.Read())
        {
            teb4.Items.Add(reader3["Название рецепта"].ToString());
        }
        conn.Close();

        conn.Open();
        String my_querry5 = "SELECT * FROM Салат ";

        OleDbCommand cmd5 = new OleDbCommand(my_querry5, conn);
        OleDbDataReader reader4 = cmd5.ExecuteReader();
        while (reader4.Read())
        {
            teb6.Items.Add(reader4["Название рецепта"].ToString());
        }
        conn.Close();

        conn.Open();
        String my_querry6 = "SELECT * FROM Выпечка ";

        OleDbCommand cmd6 = new OleDbCommand(my_querry6, conn);
        OleDbDataReader reader5 = cmd6.ExecuteReader();
        while (reader5.Read())
        {
            teb8.Items.Add(reader5["Название рецепта"].ToString());
        }
        conn.Close();

        conn.Open();
        String my_querry7 = "SELECT * FROM Суп ";

        OleDbCommand cmd7 = new OleDbCommand(my_querry7, conn);
        OleDbDataReader reader6 = cmd7.ExecuteReader();
        while (reader6.Read())
        {
            teb10.Items.Add(reader6["Название рецепта"].ToString());
        }
        conn.Close();

    }

    private void Teb2_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        vivodtext.Visibility = Visibility.Visible;
        vivodcartinki.Visibility = Visibility.Visible;

        System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection();
        conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Database777.mdb;";
        conn.Open();
        String my_querry2 = "SELECT * FROM Десерт ";

        OleDbCommand cmd2 = new OleDbCommand(my_querry2, conn);
        OleDbDataReader reader = cmd2.ExecuteReader();
        while (reader.Read())
        {
            vivodnamerecept.Text = reader["Название рецепта"].ToString();
            vivodtextrecept.Text = reader["Текст рецепта"].ToString();
        }
        conn.Close();
    }
Answer 1

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

READ ALSO
Симуляция физики веревки / провода / цепи в Unity. Чем делается?

Симуляция физики веревки / провода / цепи в Unity. Чем делается?

Мне нужно сделать симуляцию проводов со своей физикой в Unity, но не знаю при помощи какого инструмента это делатьПодскажете?

145
Асинхронные запросы к бд Dapper - Web Api

Асинхронные запросы к бд Dapper - Web Api

Есть связка Angular 7 + Web Api 2 с архитектурой N-Tier, для запроса к бд использую Dapper При отправке асинхронных запросов с Angular получаю разные ошибки:

133
Фоновые службы в Unity

Фоновые службы в Unity

Сейчас появилась потребность в реализации следующего: знать сколько именно отсутствовал пользователь в приложении и в зависимости от этого...

157
Взаимодействие двух форм через событие. WinForms

Взаимодействие двух форм через событие. WinForms

Здравствуйте! Подскажите как создать событие, чтоб оповестить главную форму о том, что в Form2 что-то произошло?

126