Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: Базы данных, ADO.NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
Frallen
0 / 0 / 1
Регистрация: 06.01.2018
Сообщений: 45
1

Утечка данных из Access

17.03.2019, 21:26. Просмотров 884. Ответов 6
Метки #, access, sql, wpf (Все метки)

Данная программа предназначена для вноса новых рецептов и просмотра внесенных рецептов.

Проблема в том что при каждом запуске программы, данные в бд access стираются.
Возможно бд каждый раз пересоздается....
В чем проблема?

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
<Window x:Class="Курсовая.Window1"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:Курсовая"
        mc:Ignorable="d"
        WindowState="Maximized"
        xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
        TextElement.Foreground="{DynamicResource MaterialDesignBody}"
        TextElement.FontWeight="Regular"
        TextElement.FontSize="15"
        TextOptions.TextFormattingMode="Ideal" 
        TextOptions.TextRenderingMode="Auto"        
        Background="{DynamicResource MaterialDesignPaper}"
        FontFamily="{DynamicResource MaterialDesignFont}"
        Title="Рецепты" 
        Height="{x:Static SystemParameters.PrimaryScreenHeight}" 
      Width="{x:Static SystemParameters.PrimaryScreenWidth}"  >
    <Window.Resources>
      
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Light.xaml" />
                <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Defaults.xaml" />
                <ResourceDictionary Source="pack://application:,,,/MaterialDesignColors;component/Themes/Recommended/Primary/MaterialDesignColor.Amber.xaml" />
                <ResourceDictionary Source="pack://application:,,,/MaterialDesignColors;component/Themes/Recommended/Accent/MaterialDesignColor.Lime.xaml" />
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </Window.Resources>
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="200" />
            <ColumnDefinition Width="430" />
            <ColumnDefinition Width="*" />
        </Grid.ColumnDefinitions>
        <Grid>
            <Grid.RowDefinitions >
                <RowDefinition Height="1000"></RowDefinition>
            </Grid.RowDefinitions>
 
            <materialDesign:Card Grid.Column="0" Margin="0 20 10 0" materialDesign:ShadowAssist.ShadowDepth="Depth3" >
 
                <StackPanel  >
                    
                    <Button x:Name="openrecept" Content="Внести новый рецепт"  Margin="0 0 0 20" Click="Openrecept_Click"></Button>
 
                    
                    
                    <Button Content="Окрыть рецепты"  Name="openspisok" Margin="0 10 0 20" Click="Openspisok_Click"></Button>
                    
                    <TextBlock Name="teb1" Visibility="Hidden" Text="Выберите десерт" Margin="10 0"></TextBlock>
                    
                    <ComboBox Name="teb2" Visibility="Hidden" Background="#fff" Margin="10 10 10 50" SelectionChanged="Teb2_SelectionChanged"  ></ComboBox>
                    
                    <TextBlock Name="teb3" Visibility="Hidden" Text="Выберите основное блюдо" FontSize="13" Margin="10 0"></TextBlock>
                    
                    <ComboBox Name="teb4" Visibility="Hidden" Background="#fff" Margin="10 10 10 50"></ComboBox>
                    
                    <TextBlock Name="teb5" Visibility="Hidden" Text="Выберите cалат" Margin="10 0"></TextBlock>
                    
                    <ComboBox Name="teb6" Visibility="Hidden" Background="#fff" Margin="10 10 10 50"></ComboBox>
                    
                    <TextBlock Name="teb7" Visibility="Hidden" Text="Выберите выперчку" Margin="10 0"></TextBlock>
                    
                    <ComboBox Name="teb8" Visibility="Hidden" Background="#fff" Margin="10 10 10 50"></ComboBox>
                    
                    <TextBlock Name="teb9" Visibility="Hidden" Text="Выберите суп" Margin="10 0"></TextBlock>
                    
                    <ComboBox Name="teb10" Visibility="Hidden" Background="#fff" Margin="10 10 10 0"></ComboBox>
                    
 
                    <Button x:Name="close" Content="Выйти" VerticalAlignment="Bottom" Margin="0 50 0 0"  Click="close_Click"/>
                </StackPanel>
            </materialDesign:Card>
        </Grid>
        <Grid Grid.Column="1">
            <Grid.RowDefinitions>
                <RowDefinition Height="350" />
                <RowDefinition Height="*" />
            </Grid.RowDefinitions>
 
 
            <!--  ДЛЯ ВЫВОДА КАРТИНКИ           -->
            <materialDesign:Card Grid.Row="0" Name="vivodcartinki" Visibility="Collapsed"  Margin="0 20 0 0" materialDesign:ShadowAssist.ShadowDepth="Depth2">
                <StackPanel>
                    
                    <Image x:Name="Firstimage2"  Height="200" Width="430" Margin="0 50 0 0" Stretch="Fill"/>
 
                </StackPanel>
            </materialDesign:Card>
            <!--                                          -->
 
            <materialDesign:Card Grid.Row="0" Visibility="Collapsed" x:Name="cartinka" Margin="0 20 0 0" materialDesign:ShadowAssist.ShadowDepth="Depth2">
                <StackPanel>
                    <TextBlock Text="Загрузите изображение рецепта" FontSize="20" TextAlignment="Center" Margin="0 10 0 0"></TextBlock>
                    <Image x:Name="Firstimage"  Height="200" Width="430" Margin="0 50 0 0" Stretch="Fill"/>
                    <Button x:Name="donwnlimg" Content="Загрузить катинку" Margin="0 10 0 0" Click="Donwnlimg_Click"></Button>
                </StackPanel>
            </materialDesign:Card>
 
            <materialDesign:Card Grid.Row="1" Visibility="Collapsed" x:Name="tip" VerticalAlignment="Top" Margin="0 20 0 0" materialDesign:ShadowAssist.ShadowDepth="Depth2">
                <StackPanel>
                    <Label FontSize="20" Background="#FFFFC107" Margin="0 0 0 20">Выберите вид блюда</Label>
                    <ListBox x:Name="bluda"  >
                        <ListBoxItem x:Name="desert">Десерты</ListBoxItem>
                        <ListBoxItem x:Name="ocnov">Основные блюда</ListBoxItem>
                        <ListBoxItem x:Name="salat">Салаты</ListBoxItem>
                        <ListBoxItem x:Name="vipech">Выпечка</ListBoxItem>
                        <ListBoxItem x:Name="sup" >Супы</ListBoxItem>
                    </ListBox>
                </StackPanel>
            </materialDesign:Card>
        </Grid>
 
        <Grid Grid.Column="2">
            <Grid.RowDefinitions>
                <RowDefinition Height="*" />
                <RowDefinition Height="Auto" />
            </Grid.RowDefinitions>
 
            <materialDesign:Card Grid.Row="0" Visibility="Collapsed" x:Name="recept" Margin="20 20" materialDesign:ShadowAssist.ShadowDepth="Depth4">
                <StackPanel>
                    <TextBlock Text="Введите название рецепта" FontSize="25" Margin="20 60 20 0"></TextBlock>
                    <TextBox x:Name="nametext" TextWrapping="Wrap" AcceptsReturn="True" Margin="20 20 20 0" MaxLength="36" />
                    <TextBlock Text="Введите текст рецепта" FontSize="25" Margin="20 60 20 0"></TextBlock>
                    <TextBox  x:Name="text"   TextWrapping="Wrap" AcceptsReturn="True" Margin="20 20 20 20" Padding="5 5"></TextBox>
                </StackPanel>
            </materialDesign:Card>
 
             
 
            <!--       ДЛЯ ВЫВОДА ТЕКСТа              -->
            <materialDesign:Card Grid.Row="0" Name="vivodtext" Visibility="Collapsed"  Margin="20 20" materialDesign:ShadowAssist.ShadowDepth="Depth4">
                <StackPanel>
                    <TextBlock Name="vivodnamerecept"  FontSize="25" Margin="20 60 20 0"></TextBlock>
             
                    <TextBlock Name="vivodtextrecept"  FontSize="25" Margin="20 60 20 0"></TextBlock>
                    
                </StackPanel>
            </materialDesign:Card>
<!--                                          -->
            
            
            
            <StackPanel Grid.Row="1" Margin="20" Visibility="Collapsed" x:Name="vnectiblock">
                <Button Click="vnecti" >Внести рецепт</Button>
            </StackPanel>
        </Grid>
    </Grid>
</Window>
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
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();
        }
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.03.2019, 21:26
Ответы с готовыми решениями:

утечка Electrolux erf3700X pr. 924440021 s/n 62407230, утечка в испарителе х/о
Поступил на сервис холодильник с утечкой. Дали давление воздухом 10 очков. В испарителе морозильной...

Как произошла утечка данных?
Привет всем. С почтением отношусь к людям, соображающим в вопросах безопасности, и прошу помочь и...

Как заполнить базу данных Access с помощью vba в том же access и считать из нее инфу?
Прошу помочь в азах. Как заполнить базу данных Access с помощью vba в том же access и считать из...

VC++. Базы данных Access 97 -> Access 2000
Может кто подскажет, как использовать базу данных, созданную в Access 97, если на PC установлен...

Импорт данных из Excel в Access - MS Access
Добрый день, очень нужна помощь. Поля в таблице access: Name - текстовый Surname - текстовый...

6
OwenGlendower
Супер-модератор
Эксперт .NET
10595 / 9107 / 3883
Регистрация: 17.03.2014
Сообщений: 18,235
Записей в блоге: 1
Завершенные тесты: 2
17.03.2019, 21:46 2
Frallen, файл Database777.mdb включен в проект и для него стоит Copy to output directory = Always или If newer?
0
Frallen
0 / 0 / 1
Регистрация: 06.01.2018
Сообщений: 45
17.03.2019, 21:51  [ТС] 3
Цитата Сообщение от OwenGlendower Посмотреть сообщение
Frallen, файл Database777.mdb включен в проект и для него стоит Copy to output directory = Always или If newer?
Я так понимаю вы про это
0
Миниатюры
Утечка данных из Access   Утечка данных из Access  
OwenGlendower
Супер-модератор
Эксперт .NET
10595 / 9107 / 3883
Регистрация: 17.03.2014
Сообщений: 18,235
Записей в блоге: 1
Завершенные тесты: 2
17.03.2019, 22:00 4
Лучший ответ Сообщение было отмечено Frallen как решение

Решение

Frallen, именно об этом. VS делает ровно то что ты ей сказал. Файл базы данных при каждой компиляции копируется в выходной каталог затирая старый файл и все изменения вместе с ним. Советую отключить копирование и делать это вручную или через post build событие если файл не существует.
1
Frallen
0 / 0 / 1
Регистрация: 06.01.2018
Сообщений: 45
17.03.2019, 22:27  [ТС] 5
Цитата Сообщение от OwenGlendower Посмотреть сообщение
Frallen, именно об этом. VS делает ровно то что ты ей сказал. Файл базы данных при каждой компиляции копируется в выходной каталог затирая старый файл и все изменения вместе с ним. Советую отключить копирование т делать это вручную или через post build событие если файл не существует.
Теперь у меня вылетает ошибка, что не возможно найти путь к базе.Выключил копирование в первом скрине
0
OwenGlendower
Супер-модератор
Эксперт .NET
10595 / 9107 / 3883
Регистрация: 17.03.2014
Сообщений: 18,235
Записей в блоге: 1
Завершенные тесты: 2
17.03.2019, 23:09 6
Frallen, значит нужно вручную скопировать mdb файл в выходной каталог
1
Frallen
0 / 0 / 1
Регистрация: 06.01.2018
Сообщений: 45
17.03.2019, 23:22  [ТС] 7
Большое спасибо! Теперь буду знать.
0
17.03.2019, 23:22
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.03.2019, 23:22

Не открывается база данных Access , пишет неразпознаваемый формат базы данных
Не открывается база данных Access , пишет неразпознаваемый формат базы данных,что делать

Какой формат базы данных DSN Access (атрибуты и типы данных)?
В настройках IIS можно выбирать формат журнала, один из форматов - это DSN Access, то есть события...

Запись данных в MS Access с ADOQuery (ошибка типов данных при записи)
Здравствуйте. Я добавила на форму три компонента ADOConnection, DataSource, ADOQuery. В ADOQuery...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru