Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
0 / 0 / 0
Регистрация: 03.06.2014
Сообщений: 8

Загрузить в базу массив данных.

03.04.2016, 18:57. Показов 2180. Ответов 5

Студворк — интернет-сервис помощи студентам
Подключаю базу данных при помощи datagridview, загружаю данные из формы и заполняю ими массив по кнопке, затем по другой кнопке обрабатываю этот массив и по третьей кнопке гружу назад, в базу. Код формы:
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
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.OleDb;
 
namespace Проект1
{
    public partial class Form1 : Form
    {
 
        int[,] arr = new int[10, 7];
        int[,] brr = new int[10, 7];
        int[] d = new int[10];
        int[] p = new int[10];
        int[] c = new int[10];
        int[] h = new int[10];
        int[] y = new int[10];
        int[] s = new int[10];
        int[] x = new int[10];
 
        int k = 0;
 
        public Form1()
        {
            InitializeComponent();
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
 
            // TODO: данная строка кода позволяет загрузить данные в таблицу "база_данных1DataSet.Хранение_Поставка". При необходимости она может быть перемещена или удалена.
            this.хранение_ПоставкаTableAdapter.Fill(this.база_данных1DataSet.Хранение_Поставка);
 
        }
 
        private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
 
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
          //  int[,] arr = new int[10, 7];
            for (int i = 0; i < 10; i++)
            {
                for (int j = 0; j < 7; j++)
                {
                    arr[i, j] = (int)dataGridView1.Rows[i].Cells[j].Value;
                    Text += arr[i, j];
 
              //      textBox1.Text += arr[i, j].ToString();
                }
            }
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
 
                for (int i = 0; i < 10; i++)
                {
                    d[i] = arr[i, 0];
                    p[i] = arr[i, 1];
                    c[i] = arr[i, 2];
                    h[i] = arr[i, 3];
                    y[i] = arr[i, 4];
                    s[i] = arr[i, 5];
                    x[i] = arr[i, 6];
                }
 
                int min = 0;
                for (int t = 0; t < 10; t++)
                {
                    min += c[t] * x[t];
                    min += p[t] * y[t];
                    min += h[t] * s[t];
                }
 
 
                for (int i = 0; i < 10; i++)             //////////////////////////////////////
                {
                    {
                        if (i == k)
                        {
                            if (y[k] != 0)
                            {
                                if (k != 9)
                                {
                                    y[k] += d[k + 1];
                                    y[k + 1] = 0;
                                    x[k + 1] = 0;
                                }
                            }
                            else
                                if ((k != 8) & (k != 9) )
                                {
                                    y[k + 1] += d[k + 2];
                                    y[k + 2] = 0;
                                    x[k + 2] = 0;
                                }
                        }
                    }
 
                    s[0] = y[0] - d[0];
                    if (s[0] >= 0)
                    {
                        for (int t = 1; t < 10; t++)
                        {
                            if (t != 9)
                            {
                                s[t] = s[t - 1] + y[t] - d[t];
                                if (s[t] < 0)
                                    break;
                            }
                            else s[t] = 0;
                        }
 
                        int Tmin = 0;
                        for (int t = 0; t < 10; t++)
                        {
                            Tmin += c[t] * x[t];
                            Tmin += p[t] * y[t];
                            Tmin += h[t] * s[t];
                        }
 
                        if (Tmin <= min)
                            min = Tmin;
 
                        else
                        {
                            if (i == k)
                            {
                                if (y[k] != 0)
                                {
                                    if (k != 9)
                                    {
                                        y[k] = d[k];
                                        y[k + 1] = d[k + 1];
                                        x[k + 1] = 1;
                                    }
                                }
                                else
                                    if ((k != 8) & ( k != 9))
                                    {
                                        y[k + 1] = d[k + 1];
                                        y[k + 2] = d[k + 2];
                                        x[k + 2] = 1;
                                    }
                            }
                        }
 
                    }
 
                    else
                    {
                    if (i == k)
                        {
                            if (y[k] != 0)
                            {
                                if (k != 9)
                                {
                                    y[k] = d[k];
                                    y[k + 1] = d[k + 1];
                                    x[k + 1] = 1;
                                }
                            }
                            else
                                if (k != 8)
                                {
                                    y[k + 1] = d[k + 1];
                                    y[k + 2] = d[k + 2];
                                    x[k + 2] = 1;
                                }
                        }
                    }
                    k++;
                }                  /////////////////////////////////
 
 
        }
 
        private void button3_Click(object sender, EventArgs e)
        {
 
                    for (int i = 0; i < 10; i++)
                    {
                        brr[i, 0] = d[i];
                        brr[i, 1] = p[i];
                        brr[i, 2] = c[i];
                        brr[i, 3] = h[i];
                        brr[i, 4] = y[i];
                        brr[i, 5] = s[i];
                        brr[i, 6] = x[i];
                    }
 
                    for (int i = 0; i < 10; i++)
                    {
                        for (int j = 0; j < 7; j++)
                        {
                            dataGridView1.Rows[i].Cells[j].Value = (int)brr[i, j];
                            Text += brr[i, j];
 
                            //      textBox1.Text += arr[i, j].ToString();
                        }
                    }
        }
 
    }
}
Помогите найти, в чем ошибка!!! Очень срочно надо, никогда не работала с с# и базами MS Access...
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.04.2016, 18:57
Ответы с готовыми решениями:

Как загрузить картинки в базу данных?
Пожалуйста, помогите, что писать в private void button2_Click, чтобы данные загружались в БД using System; using...

Загрузить картинку через форму в базу данных
Ребят, возникла проблема. В теме на форуме увидела код для загрузки фотографии в БД. Решила сделать так же. И ничего, выдает ошибку. А...

Загрузить массив данных в БД MS Access
Здравствуйте! Есть некоторые значения в двух списках. Этими значениями надо заполнить таблицу в БД. Как это сделать? Помогите пожалуйста.

5
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
03.04.2016, 19:09
Цитата Сообщение от LoveHurts Посмотреть сообщение
Помогите найти, в чем ошибка!!!
LoveHurts, о Боже, что делает этот ужас? Вы лучше ТЗ расскажите, я сомневаюсь, что найдется храбрец, решившийся во всем этом найти тайный смысл.
0
0 / 0 / 0
Регистрация: 03.06.2014
Сообщений: 8
03.04.2016, 19:19  [ТС]
Могу скинуть код Что делает вторая кнопка, это наверное пугает, но это не самое важное, важнее то, верно ли исполняет первая кнопка:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
        private void button1_Click(object sender, EventArgs e)
        {
          //  int[,] arr = new int[10, 7];
            for (int i = 0; i < 10; i++)
            {
                for (int j = 0; j < 7; j++)
                {
                    arr[i, j] = (int)dataGridView1.Rows[i].Cells[j].Value;
                    Text += arr[i, j];
 
    
                }
            }
        }
по идее, здесь заполняется данными из базы, которую я подключила, массив

Ну и третья кнопка, на которой все и ломается
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
        private void button3_Click(object sender, EventArgs e)
        {
 
                    for (int i = 0; i < 10; i++)
                    {
                        brr[i, 0] = d[i];
                        brr[i, 1] = p[i];
                        brr[i, 2] = c[i];
                        brr[i, 3] = h[i];
                        brr[i, 4] = y[i];
                        brr[i, 5] = s[i];
                        brr[i, 6] = x[i];
                    }
 
                    for (int i = 0; i < 10; i++)
                    {
                        for (int j = 0; j < 7; j++)
                        {
                            dataGridView1.Rows[i].Cells[j].Value = (int)brr[i, j];
                            Text += brr[i, j];
 
                            //      textBox1.Text += arr[i, j].ToString();
                        }
                    }
        }
Здесь, по идее, значения из массива должны возвращаться обратно в базу..
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
03.04.2016, 19:21
Цитата Сообщение от LoveHurts Посмотреть сообщение
Могу скинуть код
Вы хотите моей смерти?
Лучше расскажите, что из себя представляют данные (те что вы вводите, и те что надо записать-получить из базы). Как выглядят массивы? Есть у них к-либо стандартизация?
0
0 / 0 / 0
Регистрация: 03.06.2014
Сообщений: 8
03.04.2016, 19:26  [ТС]
Я создаю таблицу в ms access с 7 столбцами и 10 строками, все данные базы - целые числа. Матрица формируется также целочисленная, затем разделяется на 7 массивов размерности 10 соответственно..
Получить надо те же массивы - столбцы таблицы, только измененные впоследствии программно
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
03.04.2016, 21:13
Лучший ответ Сообщение было отмечено LoveHurts как решение

Решение

LoveHurts, вот в архиве пример. Он немного корявый, особо времени не было, но может что-то из него и используете.
Вложения
Тип файла: rar demo.rar (59.3 Кб, 18 просмотров)
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.04.2016, 21:13
Помогаю со студенческими работами здесь

Массив в базу данных
Всем привет! Как записать массивы : int mas1 = new int { 5, 6, 6, 6, 6, 6, 6, 3, 1, 5, 6, 6, 12, 12 }; int mas2 = new int {...

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

Как записать массив в базу данных
Добрый день) Помогите пожалуйста писать запрос на Sql-e Вот задача В метод приходит два одномерных массивов 1-ая string...

Загрузить картинку и сохранить в базу
Windows Forms, SQL Server. Подскажите как загрузить картинку и сохранить в базу openFileDialog1.ShowDialog(); ...

Необходимо файл (любого расширения) записать в базу данных как массив байтов
Необходимо файл (любого расширения) записать в базу данных в byte форме. И затем взять его (выбрав необходимый из DGV), кликнуть и он...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Установка Qt Creator без VPN. Сборка проекта из Qt Creator с помощью CMake для разработки обычных C/C++ проектов без установки фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru