Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> DataGridView, не могу создать колонки  
:(
    Опции темы
staim
Дата 14.11.2013, 12:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 27.6.2007
Где: Россия -> Моск ва

Репутация: нет
Всего: нет



Код

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;

namespace WindowsFormsApplication2
{
    public partial class Form1 : Form
    {
        IDataAdapter _adapter;
        DataSet _dataset;
        IDbConnection _conn;
        

        public Form1()
        {
            InitializeComponent();
            button1.Enabled = false;
            CreateDataSet();
            dataGridView1.CellEndEdit +=new DataGridViewCellEventHandler(OnCellEdit);
        }
        protected override void OnClosing(CancelEventArgs e)
        {
            _dataset.Dispose();
            _conn.Dispose();
        }

        private void CreateDataSet()
        {
            string connectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\Project\db1.mdb";
            OleDbConnection conn = new OleDbConnection(connectionString);
            OleDbCommand selectCmd = new OleDbCommand("SELECT * FROM Логины", conn);
            OleDbCommand updateCmd =
                new OleDbCommand("UPDATE Логины SET Логин = @login, Пароль = @password, Правило = @rule WHERE Id=@Id", conn);
            updateCmd.Parameters.Add("@login", OleDbType.VarChar, 50, "Логин");
            updateCmd.Parameters.Add("@password", OleDbType.VarChar, 50, "Пароль");
            updateCmd.Parameters.Add("@rule",OleDbType.VarChar, 1,"Правило");
            updateCmd.Parameters.Add("@Id", OleDbType.Integer, 4, "Id");

            OleDbDataAdapter adapter = new OleDbDataAdapter();
            adapter.TableMappings.Add("Table", "Логины");
            adapter.SelectCommand = selectCmd;
            adapter.UpdateCommand = updateCmd;
            _conn = conn;
            _adapter = adapter;
            //_dataset = new DataSet("Логины");
            DataTable dt = new DataTable("Логины");
            DataColumn dc = new DataColumn("id", typeof(int));
            DataColumn dc2 = new DataColumn("login", typeof(string));
            DataColumn dc3 = new DataColumn("pass", typeof(string));
            DataColumn dc4 = new DataColumn("rule", typeof(string));
            dt.Columns.Add(dc);
            dt.Columns.Add(dc2);
            dt.Columns.Add(dc3);
            dt.Columns.Add(dc4);
            _dataset = new DataSet("Логины");
            _dataset.Tables.Add(dt);

            _adapter.Fill(_dataset);
            dataGridView1.DataSource = _dataset.Tables["Логины"];
        }

        private void OnCellEdit(object sender, DataGridViewCellEventArgs e)
        {
            button1.Enabled = true;
        }


        private void button2_Click(object sender, EventArgs e)
        {
           
        }

        private void button1_Click(object sender, EventArgs e)
        {
            _adapter.Update(_dataset);
            button1.Enabled = false;
        }


    }
}


Должна выводиться таблица id, login, password, rule с возможностью редактирования. выводится id, login, password, rule пустые и id, login, password, rule из базы данных, появляется в общем 8 колонок. Как поправить этот момент? и еще как сделать последнюю колонку ListBox ом ? помогите пож-та срочно товарищи. С меня + если он ставится тут
PM MAIL ICQ   Вверх
jonie
Дата 14.11.2013, 23:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 8
Всего: 118



создавайте пустой DataSet и заполняйте (Fill) его (не создавая руками таблицу и колонки в ней).



--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
dzaraev
Дата 15.11.2013, 06:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 149
Регистрация: 12.1.2013

Репутация: нет
Всего: 1



Цитата(staim @  14.11.2013,  12:10 Найти цитируемый пост)
выводится id, login, password, rule пустые и id, login, password, rule из базы данных, появляется в общем 8 колонок

Установите свойство DataGridView.AutoGenerateColumns на FALSE. Возможно дело в этом.
Цитата(staim @  14.11.2013,  12:10 Найти цитируемый пост)
еще как сделать последнюю колонку ListBox

Если использовать для геренации колонок свойство DataGridView.DataSource, но скорее всего никак (не уверен на 100%).
А если создавать колонки вручную, то взгляните на  класс DataGridViewColumn и его наследников:
http://msdn.microsoft.com/ru-ru/library/sy...(v=vs.100).aspx
тут есть DataGridViewTextBoxColumn например. Если вам нужно именно листбокс - создайте своего наследника от класса DataGridViewColumn и реализуйте в нем нужную фичу. Если будете реализовывать свою колонку, по ссылке выше прочитайте обязательно раздел "Заметки".

Это сообщение отредактировал(а) dzaraev - 15.11.2013, 06:05
--------------------
Если вопрос решён - помечайте тему.  
PM MAIL   Вверх
staim
Дата 15.11.2013, 06:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 27.6.2007
Где: Россия -> Моск ва

Репутация: нет
Всего: нет



Спасибо попробую
PM MAIL ICQ   Вверх
staim
Дата 15.11.2013, 07:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 27.6.2007
Где: Россия -> Моск ва

Репутация: нет
Всего: нет



Цитата(dzaraev @ 15.11.2013,  06:05)
Цитата(staim @  14.11.2013,  12:10 Найти цитируемый пост)
выводится id, login, password, rule пустые и id, login, password, rule из базы данных, появляется в общем 8 колонок

Установите свойство DataGridView.AutoGenerateColumns на FALSE. Возможно дело в этом.
Цитата(staim @  14.11.2013,  12:10 Найти цитируемый пост)
еще как сделать последнюю колонку ListBox

Если использовать для геренации колонок свойство DataGridView.DataSource, но скорее всего никак (не уверен на 100%).
А если создавать колонки вручную, то взгляните на  класс DataGridViewColumn и его наследников:
http://msdn.microsoft.com/ru-ru/library/sy...(v=vs.100).aspx
тут есть DataGridViewTextBoxColumn например. Если вам нужно именно листбокс - создайте своего наследника от класса DataGridViewColumn и реализуйте в нем нужную фичу. Если будете реализовывать свою колонку, по ссылке выше прочитайте обязательно раздел "Заметки".

а я видел классы вроде datagridviewcomboboxcolumn например, он не сгодится ? т.е. нужно наследовать свой класс верно?
PM MAIL ICQ   Вверх
dzaraev
Дата 15.11.2013, 10:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 149
Регистрация: 12.1.2013

Репутация: нет
Всего: 1



Цитата(staim @  15.11.2013,  07:06 Найти цитируемый пост)
а я видел классы вроде datagridviewcomboboxcolumn например, он не сгодится ? т.е. нужно наследовать свой класс верно?

Если вас этот класс устроит, используйте его конечно. Свой надо  делать только если нет стандартного класса для ваших целей. Вам виднее - сгодится комбобокс вместо листа или нет, я ведь вашей задачи не знаю ))
--------------------
Если вопрос решён - помечайте тему.  
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
stab
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Базы данных под .NET | Следующая тема »


 




[ Время генерации скрипта: 0.0897 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.