Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Общие вопросы .NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.03.2010, 20:32   #1
Faridik
Форумчанин
 
Аватар для Faridik
 
Регистрация: 08.08.2008
Сообщений: 117
По умолчанию DropDownList и вывод из таблицы

Здраствуйте.Подскажите пожалуйста.У меня есть DropDownList,таблица (мс сгл).Мне нужен код,как вывести имя инженера из таблицы в этот ДДЛ.Если можно весь код.Работаю на ВС2005.Спасибо
Faridik вне форума Ответить с цитированием
Старый 02.03.2010, 20:37   #2
Arnezami
Форумчанин
 
Регистрация: 04.10.2009
Сообщений: 147
По умолчанию

вы опишите какие контролы вы используете, базу данных, и схему получения и обработки данных... я пришлю примеры из своего проекта
Ув. Форумчане! Если мои советы были Вам полезны, не забывайте благодарить в виде повышение рейтинга!!!
http://vkontakte.ru/id6715558
Arnezami вне форума Ответить с цитированием
Старый 02.03.2010, 20:39   #3
Faridik
Форумчанин
 
Аватар для Faridik
 
Регистрация: 08.08.2008
Сообщений: 117
По умолчанию

Я недавно начал,мало понимаю..Вот пример другого ДДЛ.
Код:
protected void Compname_ddl_SelectedIndexChanged(object sender, EventArgs e)
    {
        Cname_ddl.Items.Clear();
        using (SqlConnection Conn = new SqlConnection())
        {

            Conn.ConnectionString = ConfigurationManager.ConnectionStrings["DBPath"].ConnectionString;

            SqlCommand Comm = new SqlCommand();
            Comm.Connection = Conn;

            Comm.CommandText = @"SELECT ID,FIO FROM CLIENTSWORKERS WHERE CLIENTID = @CLIENDID";

            Comm.Parameters.Add("@CLIENDID", SqlDbType.Int);
            Comm.Parameters["@CLIENDID"].Value = Compname_ddl.SelectedValue;

            Conn.Open();

            SqlDataReader reader = Comm.ExecuteReader();

            Cname_ddl.Items.Add(new ListItem("По плану", "-1"));

            while (reader.Read())
                Cname_ddl.Items.Add(new ListItem(reader[1].ToString(), reader[0].ToString()));

            reader.Close();
        }

    }
Faridik вне форума Ответить с цитированием
Старый 03.03.2010, 21:44   #4
Arnezami
Форумчанин
 
Регистрация: 04.10.2009
Сообщений: 147
Восклицание

Цитата:
Сообщение от Faridik Посмотреть сообщение
Я недавно начал,мало понимаю..Вот пример другого ДДЛ.
Код:
protected void Compname_ddl_SelectedIndexChanged(object sender, EventArgs e)
    {
        Cname_ddl.Items.Clear();
        using (SqlConnection Conn = new SqlConnection())
        {

            Conn.ConnectionString = ConfigurationManager.ConnectionStrings["DBPath"].ConnectionString;

            SqlCommand Comm = new SqlCommand();
            Comm.Connection = Conn;

            Comm.CommandText = @"SELECT ID,FIO FROM CLIENTSWORKERS WHERE CLIENTID = @CLIENDID";

            Comm.Parameters.Add("@CLIENDID", SqlDbType.Int);
            Comm.Parameters["@CLIENDID"].Value = Compname_ddl.SelectedValue;

            Conn.Open();

            SqlDataReader reader = Comm.ExecuteReader();

            Cname_ddl.Items.Add(new ListItem("По плану", "-1"));

            while (reader.Read())
                Cname_ddl.Items.Add(new ListItem(reader[1].ToString(), reader[0].ToString()));

            reader.Close();
        }

    }
Какой ужас... Перед разработкой приложений советую вам почитать литературу по правильному проектированию! Делать запросы в базу в обработчике событий... это гавнокод!\

Для работы с базой читаем LINQ to SQL... всё намного проще и выборка данных осуществляеться кликами мышки и в основном без написания дополнительного кода
Ув. Форумчане! Если мои советы были Вам полезны, не забывайте благодарить в виде повышение рейтинга!!!
http://vkontakte.ru/id6715558
Arnezami вне форума Ответить с цитированием
Старый 04.03.2010, 01:25   #5
dampirik
Форумчанин
 
Регистрация: 02.07.2009
Сообщений: 722
По умолчанию

Arnezami
Цитата:
вы опишите какие контролы вы используете, базу данных, и схему получения и обработки данных... я пришлю примеры из своего проекта
Цитата:
Какой ужас... Перед разработкой приложений советую вам почитать литературу по правильному проектированию! Делать запросы в базу в обработчике событий... это гавнокод!\
Ну дк дайте не сложный пример не гавнокода. А то откуда знать простым смертным как нужно писать...
dampirik вне форума Ответить с цитированием
Старый 04.03.2010, 09:23   #6
Faridik
Форумчанин
 
Аватар для Faridik
 
Регистрация: 08.08.2008
Сообщений: 117
По умолчанию

dampirik,я с тобой согласен.Мне показали так,я сделал.А кто-нибудь может как этот гавнокод написать то что мне требуется?
Faridik вне форума Ответить с цитированием
Старый 04.03.2010, 12:38   #7
Arnezami
Форумчанин
 
Регистрация: 04.10.2009
Сообщений: 147
По умолчанию

Ну то что я просил я так и не увидел! Выполните мои требования и я в деталях и с подробностями распишу что куда писать и как сделать правильно

Ещё раз перечесляю их:

1) База данных
2) Таблички
3)Что должно быть в DropDownList?
4)Что должно изменяться при изменении выделеного элемента в DropDownList?

Первое что хочу сказать по поводу правильности проектировки:

Для того, чтобы не путаться в коде, и для повышение безопастности советую почитать Многоуровное проктирование, а именно
Код:
(ULL - BLL - DAL)
Что это такое?

ULL - уровень пользователя, доступ к данным осуществляеться средствами бизнес уровня(BLL - Bisinnes Logic Layer), напрямую связи нет
BLL - связующий элемент между ULL и DAL (Здесь пише все методы работы с базой данных)
DAL(Data access layer) - Уровень доступа к данным (Здесь описываем сущность наших табличек из базы, ConnectionString)

Итак теперь более подробно и чтобы понятно было:

1.Создаем помимо нашего основного проекта, который уже есть (ULL) два проекта в нашем проекте (две DLL) Одну называем BLL а другую DAL

2. В проекте DAL создаём папочку Entity и добавляем новый Item - LINQ to SQL Classes и называем его как хотим (у меня CnDataBases.dbml)

Код:
Для справки: DBML(DataBase Markup Language) - язык разметки баз данных
После выполнения вышеописанного, делаем следующее:

Идём в ServerExplorer и создаём новый коннект к нашей базе (У меня MSSQL, поэтому буду описывать примеры на ней, если вы используете MySQL - это нехорошо, потому что драйвера на LINQ - платные)

В создании ConnectionString проблем никаких быть не должно, поэтому описывать детально не буду, просто нажимаем кнопочки и читаем - мастер создания всё подскажет сам!

После подключения мы увидим наш коннект через ServerExplorer.

Открываем его, заходим в раздел Tables и видим все наши таблички.

А тепер самое сложное:

Для работы с базой нам нужно описать все наши таблички (На каждую создать свой класс) и делаеться это крайне сложно:

Просто выделяем их и перетаскиваем на пустое поле в CnDataBase.dbml

Если вы всё правильно сделали, то у вас графически должна отобразиться Ваша база данных, и если между табличками есть связи - они тоже будут видны и.... всё! Уровень DAL почти готов к работе!

У нас есть описание всех наших табличек, которые сгенерил нам LINQ (Представте вручную сколько работы чтобы описать это всё, а когда база состоит из более 1000 таблиц...)

Чуть позже опишу работу с базой
Ув. Форумчане! Если мои советы были Вам полезны, не забывайте благодарить в виде повышение рейтинга!!!
http://vkontakte.ru/id6715558
Arnezami вне форума Ответить с цитированием
Старый 05.03.2010, 10:10   #8
Faridik
Форумчанин
 
Аватар для Faridik
 
Регистрация: 08.08.2008
Сообщений: 117
По умолчанию

Спасибо за столь обширную информацию.)База у меня MSSql.
Таблицы
Код:
CREATE TABLE WORKERS
(
   ID INT CONSTRAINT WORKERS_ID_NN NOT NULL CONSTRAINT WORKERS_ID_PK PRIMARY KEY(ID),
   FIO CONSTRAINT WORKERS_FIO_NN NOT NULL,
   LOGIN NVARCHAR(100) CONSTRAINT WORKERS_LOGIN_NN NOT NULL,
   PASSWORD NVARCHAR(100) CONSTRAINT WORKERS_PASSWORD_NN NOT NULL,
   ROLE INT CONSTRAINT WORKERS_ROLE_NN NOT NULL CONSTRAINT WORKERS_ROLE_HREF REFERENCES ROLES(ID)
)
Код:
CREATE TABLE JOBWORKER
(
   ID INT CONSTRAINT JOBWORKER_ID_NN NOT NULL CONSTRAINT JOBWORKER_ID_NN NOT NULL,
   JOBID INT CONSTRAINT JOBWORKER_JOBID_NN NOT NULL CONSTRAINT JOBWORKER_JOBID_HREF REFERENCES  JOBLIST(ID),
   WORKERID INT CONSTRAINT JOBWORKER_WORKERID_NN NOT NULL CONSTRAINT WORKERS_WORKERID_HREF REFERENCES WORKERS(ID)
)
Код:
CREATE TABLE ROLES
(
   ID INT CONSTRAINT ROLES_ID_NN NOT NULL CONSTRAINT ROLES_ID_PK PRIMARY KEY(ID),
   NAME NVARCHAR(100) CONSTRAINT ROLES_NAME_NN NOT NULL
)
Я сделал так чтоб на эту страницу заходили только с ролью Админ и мне только нужно чтоб в DropDownList выводились имена из воркерс.а изменять ничего не надо,только чтоб в выпадающем списке можно было выбирать воркерс.Вот в принципе вся проблема
Faridik вне форума Ответить с цитированием
Старый 10.03.2010, 02:56   #9
Arnezami
Форумчанин
 
Регистрация: 04.10.2009
Сообщений: 147
По умолчанию

тю так в чём трабл? Заходишь в Property DropDownList, ищещь в разделе "Data" пункт DataSource -> Нажимаем Add new чего то там (студия просто не под руками... не помню как всё называеться точно)

Затем в мастере - Add чего там... Если ConnectionString есть - выбираешь его, если нет New Connection и коннектишся к базе своей. Затем студия покажет Вам вашу базу - Идем в Tables - Указываем нашу табличку (Только одену - ставим на неё чек бокс), чуть ниже будет имя DataSet - называем его по человечески, к примеру WorkerDataSet, далее Next -Finish

Затем в в Property DropDownList указываем DisplayMember (То что будет выдно) указываем FIO, а в SelectedValue ID (DropDownList в корнях явлеться Dictionary - Ключ-значение, где ID(SelectedValue) - это ключ, FIO(DisplayMember) - значение ) ну и в событиях обработки изменения выбраного элемента

Код:

ddl.SelectedValue - будет содержать ID выбраного пользователя
Ув. Форумчане! Если мои советы были Вам полезны, не забывайте благодарить в виде повышение рейтинга!!!
http://vkontakte.ru/id6715558

Последний раз редактировалось Arnezami; 10.03.2010 в 03:00.
Arnezami вне форума Ответить с цитированием
Старый 10.03.2010, 10:09   #10
Faridik
Форумчанин
 
Аватар для Faridik
 
Регистрация: 08.08.2008
Сообщений: 117
По умолчанию

Ты это все сейчас на ВС2005 обьяснял?Я чтото 70% того что ты сказал,не нашел там.
Faridik вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод из таблицы. Faridik SQL, базы данных 4 04.02.2010 09:47
Многоразовый вывод таблицы умножения Golovastik Общие вопросы C/C++ 7 23.08.2009 00:30
Вывод таблицы не выделяя строку Droid БД в Delphi 0 01.08.2009 12:04
Вывод пар из таблицы mysql Алежа PHP 2 26.05.2009 22:18
вывод таблицы умножения Soule Паскаль, Turbo Pascal, PascalABC.NET 3 12.10.2007 11:26