Batflash Ответов: 2

Как назначить текст из базы данных access в arraylist с помощью языка C#


Привет. Надеюсь, ты в порядке.
Я хочу прочитать данные из моей базы данных Access в мои флажки. Итак, я читаю базу данных в arrayList, но не знаю, как я могу присвоить эти значения моим флажкам. Итак, это для создания прототипа интернет-магазина с использованием приложения Windows Forms на языке c#. Я хочу, чтобы названия продуктов поступали из базы данных и отображались в флажках, которые находятся на форме под изображениями продуктов. Пожалуйста, помогите мне.

Что я уже пробовал:

система пения;
использование системы.Коллекции.Общий;
использование системы.ComponentModel;
использование System.Data;
использование системы.Рисование;
использование System.Linq;
использование System.Text;
использование системы.Нарезание резьбы.Задачи;
использование системы.Окна.Формы;
использование System.Data.Для oledb;

окончательное назначение пространства имен
{
общественный разделяемого класса поддержки : форма
{
собственный метод oledbconnection соединение = новый объект oledbconnection();
государственный заказчик()
{
метод InitializeComponent();
соединение.Параметр ConnectionString = @"Поставщика=Майкрософт.Туз.Oledb для.12.0;Источник данных=путь файл;сохранять сведения о безопасности=false в;";
}



частная Customer_Load недействительным(объект отправителя, EventArgs в электронной)
{
пробовать
{
соединение.Открыть();
Команда oledbcommand объект = новый объект oledbcommand();
команда.Соединение = соединение;
команда.CommandText = "SELECT * Cakes";
Список<строка> в выпечку = новый список<строка&ГТ;();
используя (OleDbDataReader reader = команда.Метода executereader())
{
в то время как(читатель.читать())
{
Торты.Добавить(читатель["название продукта"].Метод toString());
}
}
checkBox1.Text = торты(0);

соединение.Закрывать();
}
поймать (исключение бывший)
{
Ящик для сообщений.Показать("ошибка" + ex);
}


}
}
}

BillWoodruff

Откуда берутся флажки ... кроме флажка1 ...? Они есть на бланке ? Или вам нужно создавать их во время выполнения ? Является ли количество пирожных переменным ?

Batflash

Флажки находятся на форме.
"Пирожные" - это название моего Arraylist.

2 Ответов

Рейтинг:
2

BillWoodruff

Примечание: список<string> не является ArrayList: это универсальный список типа 'String

Предполагать:

1) Вы создали список<CheckBox> всех флажков

2) у вас есть допустимый список<string>, содержащий названия тортов

3) у вас никогда не бывает больше тортов, чем количество флажков

4) Вы следовали предложениям OriginalGriff в использовании базы данных

public void SetCakeCheckBoxes(List<CheckBox> cakeCheckBoxes, List<string> cakes)
{
    int ncakes = cakes.Count;

    for (int i = 0; i < cakeCheckBoxes.Count; i++)
    {
        CheckBox cbx = cakeCheckBoxes[i];

        if (i < ncakes)
        {
            cbx.Text = cakes[i];
            cbx.Visible = true;
        }
        else
        {
            // handle unused CheckBoxes ?
            cbx.Text = "";
            cbx.Visible = false;
        }
    }
}


Batflash

Погоди, Так куда же именно идет этот код?

BillWoodruff

Он идет туда, куда вы его кладете, после того как вы его изучаете, экспериментируете, понимаете и/или модифицируете. И это ваша задача.

Batflash

Ладно, извини. Огромное спасибо.

Рейтинг:
0

OriginalGriff

Во-первых, ваша команда неверна, она потерпит неудачу, так как вы не укажете таблицу, из которой хотите получить данные:

SELECT * FROM Cakes
Кроме того, рекомендуется всегда указывать нужные столбцы, а не использовать их SELECT *:
SELECT MyColumn1, MyColumn2 FROM Cakes
Таким образом, вы не тратите впустую пропускную способность, извлекая столбцы, которые вы не будете использовать, и ваш код более "защищен от будущих изменений" в БД. В вашем случае вы вероятно хотите:
SELECT `Product Name` FROM Cakes
Поскольку ваш столбец содержит пробелы. (Вместо этого лучше использовать имена столбцов без интервалов)

Вместо того чтобы использовать флажки для хранения ваших продуктов, я бы предложил использовать DataGridView - если вы создаете класс Cake вместо использования строк, вы можете как отображать дополнительную информацию, так и использовать средства выбора, доступные для элемента управления, чтобы пользователь мог выбрать нужный ему элемент(ы). Отдельные флажки-это Пита, так как во время разработки вы не знаете, сколько их вам нужно, а новый торт, добавленный в БД, означает изменение вашего приложения!
Попробуйте: это довольно простой в использовании элемент управления, и он делает вашу жизнь полной нагрузкой eaiser!


Batflash

Ладно, спасибо. Но, допустим, в моем случае я знаю количество флажков, как мне это сделать? Потому что использование datagridview не будет отображать продукты так, как это было бы в магазине.

BillWoodruff

пожалуйста, отредактируйте свой оригинальный пост, ответьте на вопросы, которые я задал вам в комментарии, и объясните это более подробно.

OriginalGriff

Серьезно?
Вам нужно будет построить массив для хранения флажков, а затем использовать индекс в нем внутри цикла.
Это мессей, и - честно говоря - довольно плохой дизайн для магазина!
Если это ваше "окончательное задание", то вы хотите, чтобы оно выглядело "реалистичным", а не наполовину испеченным "это легко для меня, программиста", - что и сделают ваши флажки!

Batflash

Хорошо, тогда посоветуйте мне, как именно я буду это делать.

OriginalGriff

Это ваше задание, а не мое: у меня нет доступа к тому, что от вас требуется. Но если это последнее задание, оно должно продемонстрировать то, что вы узнали до сих пор, поэтому внимательно прочитайте вопрос и начните искать, как магазины "реального мира" делают что - то подобное. Это даст вам основу для того, что вам нужно разработать - и это не будет включать в себя дюжину флажков! :смеяться:

Batflash

Лол, я все еще учусь на первом курсе университета, это ошеломляет, и я совершенно сбит с толку. Извините. Спасибо.