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

Как передать весь список из ListBox-а в таблицу БД MySQL

18.04.2014, 00:47. Просмотров 1316. Ответов 22
Метки нет (Все метки)

Добрый вечер, не смог найти в интернете как передать весь список из listbox-а в строку в mysql. Получается занести только первую строчку их listbox-а. Заношу вот так:
Кликните здесь для просмотра всего текста
C#
1
2
3
 string cmdText = "INSERT INTO tyty (`id`, `fdfs`, `fthfth`) VALUES (@id, @fdfs, @fthfth)";
                MySqlCommand cmd = new MySqlCommand(cmdText, connection);
                cmd.Parameters.AddWithValue("@id", listBox1.Text);

Можно ли заносить в строку через | и как потом можно будет это вывести по отдельности например в label?

Добавлено через 30 минут
Или как добавить каждую строку из listbox-а в новуй строку?
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.04.2014, 00:47
Ответы с готовыми решениями:

Создать односвязный список, затем вывести весь список в ListBox
#include "stdafx.h" #include <iostream> using namespace std; class List { public: ...

Передать список ListBox в ComboBox
Доброго времени суток ув. форумчане. Вопрос следующий : есть ListBox1 и ListBox2 , в ListBox1...

Линейные списки: Представить каждую строку как список слов, а весь текст-как список строк
В текстовом файле находятся строки текста,разбитого на отдельные слова.Слова отделяются знаками...

передать таблицу значений в качестве параметра в динамический список на упр форме
Добрый день всем, как передать таблицу значений для выборки из неё значения в динамический список...

Как сохранить весь текст с элемента ListBox?
Как сохранить весь текст с элемента ListBox?

22
nmcf
6527 / 5751 / 2621
Регистрация: 14.04.2014
Сообщений: 24,493
18.04.2014, 06:17 2
listBox1.Items используй.
0
pav1uxa
1860 / 1714 / 804
Регистрация: 23.01.2014
Сообщений: 6,087
Завершенные тесты: 1
18.04.2014, 06:35 3
Цитата Сообщение от wlx Посмотреть сообщение
Получается занести только первую строчку их listbox-а. Заношу вот так:
Ну listBox1.Text это скорее не "первая строчка", а выделенная в настоящий момент.

Цитата Сообщение от wlx Посмотреть сообщение
Можно ли заносить в строку через | и как потом можно будет это вывести по отдельности например в label?
Не понял вопроса. В любом случае обратиться к конкретной строке листбокса можно так - listBox1.Items[0] (первая строка), listBox1.Items[1] (вторая строка) и так далее. Проще прямо через цикл.

Цитата Сообщение от wlx Посмотреть сообщение
Или как добавить каждую строку из listbox-а в новуй строку?
Следующий код запишет все строки из листбокса в переменную str через пробел:
C#
1
2
3
string str="";
foreach (string s in listBox1.Items)
                str += s+" ";
0
wlx
34 / 1 / 0
Регистрация: 01.06.2013
Сообщений: 50
18.04.2014, 10:55  [ТС] 4
pav1uxa - через foreach ваш код записывает как в первой строчке id 1, а как сделать, что бы он записывал с новой строки, как в id 2, 3, 4?
id------id_client
1------6963 6963 69183
2------6963
3------6963
4------69183

Добавлено через 38 минут
В дополнение к тому вопросу, в id 1, есть 3 значения через пробел, как их вытаскивать по одному?
0
18.04.2014, 10:55
nmcf
6527 / 5751 / 2621
Регистрация: 14.04.2014
Сообщений: 24,493
18.04.2014, 12:34 5
Попробуй str += s + Environment.NewLine;
0
wlx
34 / 1 / 0
Регистрация: 01.06.2013
Сообщений: 50
18.04.2014, 19:04  [ТС] 6
nmcf, если так, то не получается(
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
string cmdText = "INSERT INTO tyty (`id`, `333`, `444`) VALUES (@id, @333, @444)";
                MySqlCommand cmd = new MySqlCommand(cmdText, connection);
                cmd.Parameters.AddWithValue("@id", listBox1.Text);
                cmd.Parameters.AddWithValue("@333", listBox2.Text);
                
                string str = "";
                foreach (string s in listBox6.Items)
                    str += s + Environment.NewLine;
 
                cmd.Parameters.AddWithValue("@444", str);
                cmd.ExecuteNonQuery();
                MessageBox.Show("Данные удачно сохранены!");
                connection.Close();


Добавлено через 4 часа 36 минут
Подскажите пожалуйста как так сделать, очень нужно, а в интернете найти немогу
0
nmcf
6527 / 5751 / 2621
Регистрация: 14.04.2014
Сообщений: 24,493
18.04.2014, 19:40 7
Вместо Environment.NewLine используй любой символ подходящий типа ";". Потом когда прочитаешь из базы в string s, например, вызовешь функцию m = s.Split(";"). Она разделит строку на части по символу и возвратит массив строк.
Если было s="123;456", то будет m[0]="123" и m[1]="456"
0
wlx
34 / 1 / 0
Регистрация: 01.06.2013
Сообщений: 50
18.04.2014, 20:03  [ТС] 8
nmcf - хорошо, а как мне записать m[0] и m[1] в столбец id?
0
nmcf
6527 / 5751 / 2621
Регистрация: 14.04.2014
Сообщений: 24,493
18.04.2014, 20:14 9
id - это что? Ты извлекаешь из listbox и записываешь в БД c разделителями. При чтении извлекаешь из БД и делишь Split'ом.
0
wlx
34 / 1 / 0
Регистрация: 01.06.2013
Сообщений: 50
18.04.2014, 20:24  [ТС] 10
nmcf id это имя столбца. Мне извлекать из БД со сплитом ненужно, у меня есть listbox, в нем строчки
строчка1
строчка2
строчка3
вот эти строки мне нужно занести в БД в столбец id, занести каждую стройку123 в разные строки в БД
id
строчка1
строчка2
строчка3
сейчас когда я записываю вот так
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
string cmdText = "INSERT INTO tyty (`id`) VALUES (@id)";
                MySqlCommand cmd = new MySqlCommand(cmdText, connection);
 
                string str = "";
                foreach (string s in listBox6.Items)
                {
                    str += s + ";";
                }
 
 
                cmd.Parameters.AddWithValue("@id", str);

то в БД заноситься все в одну строку.
0
nmcf
6527 / 5751 / 2621
Регистрация: 14.04.2014
Сообщений: 24,493
18.04.2014, 20:28 11
Ты сразу бы так и объяснил. Тебе надо в цикле foreach по listBox1.Items выполнять команду sql, как в твоём первом сообщении. Добавляешь s.
0
wlx
34 / 1 / 0
Регистрация: 01.06.2013
Сообщений: 50
18.04.2014, 20:38  [ТС] 12
nmcf есть цикл, который заносит в str все строки из listbox
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
string str = "";
                foreach (string s in listBox6.Items)
                {
                    str += s + ";";
                }
а как добавить в разные строки в БД, я так и не понимаю.
0
nmcf
6527 / 5751 / 2621
Регистрация: 14.04.2014
Сообщений: 24,493
18.04.2014, 21:21 13
C#
1
2
3
4
5
6
                string cmdText = "INSERT INTO tyty (`id`, `fdfs`, `fthfth`) VALUES (@id, @fdfs, @fthfth)";
                MySqlCommand cmd = new MySqlCommand(cmdText, connection);
foreach (string s in listBox6.Items) {
cmd.Parameters.AddWithValue("@id", s);
cmd.ExecuteNonQuery();
}
0
wlx
34 / 1 / 0
Регистрация: 01.06.2013
Сообщений: 50
18.04.2014, 21:35  [ТС] 14
nmcf пробовал уже так, пишет Ошибка записи! и добавляет только первую строчку.
вот весь код кнопки добавления в БД
Кликните здесь для просмотра всего текста
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
private void button1_Click(object sender, EventArgs e)
        {
            string MyConString = "SERVER=localhost;" +
                 "DATABASE=meb;" +
                 "UID=root;" +
                 "PASSWORD=;";
 
            MySqlConnection connection = new MySqlConnection(MyConString);
            MySqlCommand command = connection.CreateCommand();
 
            connection.Open();
            try
            {
                string cmdText = "INSERT INTO tyty (`id`) VALUES (@id)";
                MySqlCommand cmd = new MySqlCommand(cmdText, connection);
                foreach (string s in listBox6.Items)
                {
                    cmd.Parameters.AddWithValue("@id", s);
                    cmd.ExecuteNonQuery();
                }
                MessageBox.Show("Данные удачно сохранены!");
                //connection.Close();
            }
            catch (Exception)
            {
                MessageBox.Show("Ошибка записи!");
            }
        }
0
nmcf
6527 / 5751 / 2621
Регистрация: 14.04.2014
Сообщений: 24,493
18.04.2014, 22:15 15
Уникальность не нарушается? id - ключевое поле?
0
wlx
34 / 1 / 0
Регистрация: 01.06.2013
Сообщений: 50
18.04.2014, 22:26  [ТС] 16
nmcf
Кликните здесь для просмотра всего текста
s43 . radikal . ru/i101/1404/68/958a682c90c8.png
0
nmcf
6527 / 5751 / 2621
Регистрация: 14.04.2014
Сообщений: 24,493
18.04.2014, 22:34 17
Не видно.
0
wlx
34 / 1 / 0
Регистрация: 01.06.2013
Сообщений: 50
18.04.2014, 22:44  [ТС] 18
nmcf primary key не стоит в таблице tyty всего один столбец id
Я просто как мог уже делал запросы в гугле, не могу найти вообще информации, есть только как делать селект, уже не знаю что и делать
0
nmcf
6527 / 5751 / 2621
Регистрация: 14.04.2014
Сообщений: 24,493
18.04.2014, 22:49 19
Лучший ответ Сообщение было отмечено wlx как решение

Решение

А если и это внутрь цикл внести?
C#
1
2
               string cmdText = "INSERT INTO tyty (`id`) VALUES (@id)";
                MySqlCommand cmd = new MySqlCommand(cmdText, connection);
1
wlx
34 / 1 / 0
Регистрация: 01.06.2013
Сообщений: 50
18.04.2014, 22:58  [ТС] 20
nmcf - спасибо большое! Дай бог вам здоровья!
0
18.04.2014, 22:58
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.04.2014, 22:58

Как передать весь массив в вектор?
вот код. как масив arr передать все значения в вектор value. Думал так но не запускается. #include...

Как данными с одного сервера MySql заполнить таблицу на другом MySql-сервере?
Господа форумчане, здравствуйте! Помогите разобраться - как данными с одного сервера MySql...

Как можно передать в метод репорта весь массив данных?
С недавних пор начал работать с Reporting Services. Даже не знаю к какому разделу форума отнести...


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

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

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