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

Поиск:

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


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2086
Регистрация: 5.12.2006
Где: Томск

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



Цитата(okaton @  15.10.2008,  16:12 Найти цитируемый пост)
олько почему-то он у меня не подключается:

Хм... Для этого нужна библиотека System.Core. Если у Вас действительно стоит VS 2008 и Target Framework выставлен в 3.5, то она должна добавляться автоматически.


--------------------
Мой блог: alexidsa.blogspot.com
PM MAIL ICQ   Вверх
okaton
Дата 15.10.2008, 13:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



MasterOfCode, Idsa, спасибоsmile
я проект конвертировал с 2005 на 2008... ну и о нововведения не знал...
зашел в свойства проекта и обнаружил подключение framework, соответственно был 2.0, поменял на 3.5 и ура!

Подскажите пожалуйста, а как мне теперь заполнить dataSet?
PM MAIL   Вверх
MasterOfCode
Дата 15.10.2008, 13:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


elwin
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 24.4.2008
Где: World.Russia.Tyum en

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



Тебе сначала нужно заполнить DataTable.
Вот ссылка на MSDN DataTable
dataSet1.Tables.Add(YouDataTable);



Это сообщение отредактировал(а) MasterOfCode - 17.10.2008, 21:38


--------------------
user posted image
PM ICQ   Вверх
okaton
Дата 15.10.2008, 13:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



MasterOfCode, спасибо, буду разбиратьсяsmile

Попутно появились вопросы:

1. А как мне к этой красоте подключить столбцы, которые я нарисовал в дизайнере dataGridView?
С этим разобрался, надо в свойстве Колонки DataGridView изменить DataPropertyName подставив член класса 


2. Сортировка колонок не происходит, отладчик ругается  
Код

IEnumerable<MyParentClass> query = dgv2.Where(pcls => pcls.parentId == Convert.ToInt32(dataGridView1[e.ColumnIndex, e.RowIndex].Value));

Цитата

Индекс за пределами диапазона. Индекс должен быть положительным числом, а его размер не должен превышать размер коллекции.
Имя параметра: index

Как можно выйти из этого положения?

3. Кто-нибудь пользовался методом System.Data.DataTableExtensions.ToDataTable<T>(IEnumerable<T> source), эту табличку потом можно подключить к dataSet?

Это сообщение отредактировал(а) okaton - 16.10.2008, 12:16
PM MAIL   Вверх
okaton
Дата 16.10.2008, 18:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



У меня не получается создать новую строку (а тем более правило для создания строк) в таблицах. :(
Как сделать так чтобы можно было создать новую строку в 2 таблицах и соответственно данные в ней привязать к коллекции. 
Все создание строк работает только на этом этапе smile 
Код

dgv1.Add(new CLASS_dgv1(0, "", "", "", "", "", "", ""));
dgv1.Add(new CLASS_dgv1(1, "", "", "", "", "", "", ""));            
                        
dgv2.Add(new CLASS_dgv2(0, "", "", "", "", ""));
dgv2.Add(new CLASS_dgv2(0, "", "", "", "", ""));
dgv2.Add(new CLASS_dgv2(1, "", "", "", "", ""));
dgv2.Add(new CLASS_dgv2(1, "", "", "", "", ""));

Ну и еще проблема не работает сортировка в dataGridView...

Код

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;

namespace Set1DataWork
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        
        class CLASS_dgv1//класс для 1 таблицы
        {
            public CLASS_dgv1(int _IndexTable1, string _FactoryID, string _IDComplete, string _Departament, string _Responsible, string _Building, string _Room, string _Comment)
            {
                Column0_IndexTable1 = _IndexTable1;
                Column01_FactoryID = _FactoryID;                        
                Column02_IDComplete = _IDComplete;
                Column03_Departament = _Departament;
                Column04_Responsible = _Responsible;
                Column05_Building = _Building;
                Column06_Room = _Room;
                Column07_Comment = _Comment;
                               
            }
            public int Column0_IndexTable1
            {
                get;
                set;
            }
            public string Column01_FactoryID
            {
                get;
                set;
            }
            public string Column02_IDComplete
            {
                get;
                set;
            }
            public string Column03_Departament
            {
                get;
                set;
            }
            public string Column04_Responsible
            {
                get;
                set;
            }
            public string Column05_Building
            {
                get;
                set;
            }
            public string Column06_Room
            {
                get;
                set;
            }
            public string Column07_Comment
            {
                get;
                set;
            }
            
        }

        class CLASS_dgv2 //класс для 2 таблицы
        {
            public CLASS_dgv2(int _IndexTable2, string _Brand, string _Recruitment, string _RegistrationID, string _SubComment, string _Notes)
            {
                Column00_IndexTable2 = _IndexTable2;
                Column08_Brand = _Brand;
                Column09_Recruitment = _Recruitment;
                Column10_RegistrationID = _RegistrationID;
                Column11_SubComment = _SubComment;
                Column12_Notes = _Notes;
            }
            public int Column00_IndexTable2
            {
                get;
                set;
            }
            public string Column08_Brand
            {
                get;
                set;
            }
            public string Column09_Recruitment
            {
                get;
                set;
            }
            public string Column10_RegistrationID
            {
                get;
                set;
            }
            public string Column11_SubComment
            {
                get;
                set;
            }
            public string Column12_Notes
            {
                get;
                set;
            }
        }
        
        List<CLASS_dgv1> dgv1;   
        List<CLASS_dgv2> dgv2;      
        List<CLASS_dgv2> dgv2_;
         
         
                   
        private void toolStripButton1_Click(object sender, EventArgs e)
        {            
            dgv1 = new List<CLASS_dgv1>();
            dgv2 = new List<CLASS_dgv2>();       
                      

            dgv1.Add(new CLASS_dgv1(0, "", "", "", "", "", "", ""));
            dgv1.Add(new CLASS_dgv1(1, "", "", "", "", "", "", ""));            
                        
            dgv2.Add(new CLASS_dgv2(0, "", "", "", "", ""));
            dgv2.Add(new CLASS_dgv2(0, "", "", "", "", ""));
            dgv2.Add(new CLASS_dgv2(1, "", "", "", "", ""));
            dgv2.Add(new CLASS_dgv2(1, "", "", "", "", ""));
            
                       
            dataGridView1.DataSource = dgv1;              
            IEnumerable<CLASS_dgv2> query = dgv2.Where(pcls => pcls.Column00_IndexTable2 == Convert.ToInt32(dataGridView1[0, 0].Value));
            dgv2_ = query.ToList<CLASS_dgv2>(); 
            dataGridView2.DataSource = dgv2_; 
            dataGridView2.Refresh();                   
        }
               
        private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            IEnumerable<CLASS_dgv2> query = dgv2.Where(pcls => pcls.Column00_IndexTable2 == Convert.ToInt32(dataGridView1[e.ColumnIndex, e.RowIndex].Value));
            dgv2_ = query.ToList<CLASS_dgv2>();
            dataGridView2.DataSource = dgv2_;
            dataGridView2.Refresh(); 
        }
    }
}


Это сообщение отредактировал(а) okaton - 16.10.2008, 18:44
PM MAIL   Вверх
MasterOfCode
Дата 16.10.2008, 20:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


elwin
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 24.4.2008
Где: World.Russia.Tyum en

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



Код

IEnumerable<CLASS_dgv2> query = dgv2.Where(pcls => pcls.Column00_IndexTable2 == Convert.ToInt32(dataGridView1[0, e.RowIndex].Value));

я ошибся в этой строчке, e.ColumnIndex нужно заменить на номер колонки с идишником, в данном случаи на 0.

Цитата(okaton @  16.10.2008,  21:41 Найти цитируемый пост)
У меня не получается создать новую строку 

А у грида разрешение на добавление стоит?

Цитата(okaton @  16.10.2008,  21:41 Найти цитируемый пост)
Ну и еще проблема не работает сортировка в dataGridView...


А у грида разрешение на сортировку стоит?


--------------------
user posted image
PM ICQ   Вверх
okaton
Дата 16.10.2008, 20:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата
А у грида разрешение на добавление стоит?
А у грида разрешение на сортировку стоит? 

Стоит. Строки можно добавлять и сортировать. Пока я не нажимаю:
Код

private void toolStripButton1_Click(object sender, EventArgs e)



Это сообщение отредактировал(а) okaton - 16.10.2008, 20:24
PM MAIL   Вверх
MasterOfCode
Дата 16.10.2008, 20:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


elwin
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 24.4.2008
Где: World.Russia.Tyum en

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



Если после повторного нажатия, то возможно из за этого:
Код

dgv1 = new List<CLASS_dgv1>();
dgv2 = new List<CLASS_dgv2>();

Замени на:
Код

if (dgv1 == null)
dgv1 = new List<CLASS_dgv1>();
if (dgv2 == null)
dgv2 = new List<CLASS_dgv2>();



--------------------
user posted image
PM ICQ   Вверх
okaton
Дата 16.10.2008, 21:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



После первого нажатия. 

Ругается на сортировку:
Цитата

private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            IEnumerable<CLASS_dgv2> query = dgv2.Where(pcls => pcls.Column00_IndexTable2 == Convert.ToInt32(dataGridView1[0, e.RowIndex].Value));

Цитата

Индекс за пределами диапазона. Индекс должен быть положительным числом, а его размер не должен превышать размер коллекции.
Имя параметра: index

e.RowIndex =-1

Строки не добавляются. После изменения при повторном нажатии добавляются 2  строки в dataGridView2 с сохранением данных, но к каждой строке в таблице dataGridView1

Это сообщение отредактировал(а) okaton - 16.10.2008, 21:42
PM MAIL   Вверх
MasterOfCode
Дата 17.10.2008, 07:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


elwin
**


Профиль
Группа: Участник
Сообщений: 740
Регистрация: 24.4.2008
Где: World.Russia.Tyum en

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



В событие CellClick добавь условие:
Код

            if (e.RowIndex >= 0)
            {
                IEnumerable<CLASS_dgv2> query = dgv2.Where(pcls => pcls.Column00_IndexTable2 == Convert.ToInt32(dataGridView1[0, e.RowIndex].Value));
                dgv2_ = query.ToList<CLASS_dgv2>();
                dataGridView2.DataSource = dgv2_;
                dataGridView2.Refresh();
            }



--------------------
user posted image
PM ICQ   Вверх
okaton
Дата 17.10.2008, 10:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Добавил. Ошибка соответственно исчезла. 
В остальном тоже самое: сортировка не происходит, строки не добавляются  smile  
Цитата

Если пользователь прокрутит control вниз до последней строчки, будет отображена дополнительная, специальная строчка для внесения новой записи. Такая строчка всегда помечена символом звездочки на заголовке. Когда пользователь любым способом перемещается в эту строку, DataGridView добавляет новую запись со значениями по умолчанию. Если фокус ввода находится в этой строке, и пользователь нажимает Esc, новая запись пропадает, а фокус ввода перемещается на строчку выше.

Звездочка после нажатия toolStripButton1_Click также исчезает.

Это сообщение отредактировал(а) okaton - 17.10.2008, 19:57
PM MAIL   Вверх
okaton
Дата 17.10.2008, 22:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Я не очень понимаю концепцию dataTable. Мне при этом нужна будет коллекция которая у меня сейчас есть или dataTable сама является коллекцией (если это можно так назвать)
PM MAIL   Вверх
okaton
Дата 18.10.2008, 15:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Чем можно заменить эту строчку для dataDridView?
Код

dataGrid1.SetDataBinding(dataSet, "ParentTable");


вот так
Код

dataGridView1.DataSource = dataSet.Tables["ParentTable"];


Это сообщение отредактировал(а) okaton - 18.10.2008, 15:34
PM MAIL   Вверх
okaton
Дата 18.10.2008, 21:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



В общем я переработал код еще раз:
Код

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;

namespace Set1DataWork
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent(); 
            MakeDataTables();
        }
        
        class CLASS_dgv1//класс для 1 таблицы
        {
            public CLASS_dgv1(int _IndexTable1, string _FactoryID, string _IDComplete, string _Departament, string _Responsible, string _Building, string _Room, string _Comment)
            {
                Column0_IndexTable1 = _IndexTable1;
                Column01_FactoryID = _FactoryID;                        
                Column02_IDComplete = _IDComplete;
                Column03_Departament = _Departament;
                Column04_Responsible = _Responsible;
                Column05_Building = _Building;
                Column06_Room = _Room;
                Column07_Comment = _Comment;
                               
            }
            public int Column0_IndexTable1
            {
                get;
                set;
            }
            public string Column01_FactoryID
            {
                get;
                set;
            }
            public string Column02_IDComplete
            {
                get;
                set;
            }
            public string Column03_Departament
            {
                get;
                set;
            }
            public string Column04_Responsible
            {
                get;
                set;
            }
            public string Column05_Building
            {
                get;
                set;
            }
            public string Column06_Room
            {
                get;
                set;
            }
            public string Column07_Comment
            {
                get;
                set;
            }
            
        }

        class CLASS_dgv2 //класс для 2 таблицы
        {
            public CLASS_dgv2(int _IndexTable2, string _Brand, string _Recruitment, string _RegistrationID, string _SubComment, string _Notes)
            {
                Column00_IndexTable2 = _IndexTable2;
                Column08_Brand = _Brand;
                Column09_Recruitment = _Recruitment;
                Column10_RegistrationID = _RegistrationID;
                Column11_SubComment = _SubComment;
                Column12_Notes = _Notes;
            }
            public int Column00_IndexTable2
            {
                get;
                set;
            }
            public string Column08_Brand
            {
                get;
                set;
            }
            public string Column09_Recruitment
            {
                get;
                set;
            }
            public string Column10_RegistrationID
            {
                get;
                set;
            }
            public string Column11_SubComment
            {
                get;
                set;
            }
            public string Column12_Notes
            {
                get;
                set;
            }
        }
                     
        private System.Data.DataSet dataSet;        
        public System.Data.DataTable table1 = new DataTable("ParentTable");  
        public DataTable table2 = new DataTable("childTable");
        public int indexTable; 


        private void MakeDataTables()
        {
            MakeParentTable();    
            MakeChildTable();     
            MakeDataRelation();  
            BindToDataGridView();
        }

        private void MakeParentTable()
        {  
            DataColumn column;
            DataRow row;
                        
            column = new DataColumn();
            column.DataType = System.Type.GetType("System.Int32");
            column.ColumnName = "Column0_IndexTable1";
            column.AutoIncrement = true; //работает как-то не правильно
            column.Caption = "IT1";
            column.ReadOnly = true;
            column.Unique = true;
            table1.Columns.Add(column);
            
            column = new DataColumn();
            column.DataType = System.Type.GetType("System.String");
            column.ColumnName = "Column01_FactoryID";
            column.AutoIncrement = false;
            column.Caption = "Заводской номер";
            column.ReadOnly = false;
            column.Unique = false;
            table1.Columns.Add(column);
            
            column = new DataColumn();
            column.DataType = System.Type.GetType("System.String");
            column.ColumnName = "Column02_IDComplete";
            column.AutoIncrement = false;
            column.Caption = "ID Комплекта";
            column.ReadOnly = false;
            column.Unique = false;
            table1.Columns.Add(column);

            column = new DataColumn();
            column.DataType = System.Type.GetType("System.String");
            column.ColumnName = "Column03_Departament";
            column.AutoIncrement = false;
            column.Caption = "Отдел";
            column.ReadOnly = false;
            column.Unique = false;
            table1.Columns.Add(column);
            
            column = new DataColumn();
            column.DataType = System.Type.GetType("System.String");
            column.ColumnName = "Column04_Responsible";
            column.AutoIncrement = false;
            column.Caption = "Ответственный";
            column.ReadOnly = false;
            column.Unique = false;
            table1.Columns.Add(column);

            column = new DataColumn();
            column.DataType = System.Type.GetType("System.String");
            column.ColumnName = "Column05_Building";
            column.AutoIncrement = false;
            column.Caption = "Корпус";
            column.ReadOnly = false;
            column.Unique = false;
            table1.Columns.Add(column);

            column = new DataColumn();
            column.DataType = System.Type.GetType("System.String");
            column.ColumnName = "Column06_Room";
            column.AutoIncrement = false;
            column.Caption = "Комната";
            column.ReadOnly = false;
            column.Unique = false;
            table1.Columns.Add(column);
            
            column = new DataColumn();
            column.DataType = System.Type.GetType("System.String");
            column.ColumnName = "Column07_Comment";
            column.AutoIncrement = false;
            column.Caption = "Примечание";
            column.ReadOnly = false;
            column.Unique = false;
            table1.Columns.Add(column);
            
            //DataColumn[] PrimaryKeyColumns = new DataColumn[1];
            //PrimaryKeyColumns[0] = table1.Columns["Column0_IndexTable1"];
            //table1.PrimaryKey = PrimaryKeyColumns;
            
            dataSet = new DataSet();
            dataSet.Tables.Add(table1);
                           
            row = table1.NewRow();
            indexTable = 0;
            row["Column0_IndexTable1"] = indexTable;                
            table1.Rows.Add(row);        
        }

        private void MakeChildTable()
        {  
            DataColumn column;
            DataRow row;

            column = new DataColumn();
            column.DataType = System.Type.GetType("System.Int32");
            column.ColumnName = "Column00_IndexTable2";
            column.AutoIncrement = false;
            column.Caption = "IT2";
            column.ReadOnly = true;
            column.Unique = false;
            table2.Columns.Add(column);
            
            column = new DataColumn();
            column.DataType = System.Type.GetType("System.String");
            column.ColumnName = "Column08_Brand";
            column.AutoIncrement = false;
            column.Caption = "Наименование изделия";
            column.ReadOnly = false;
            column.Unique = false;
            table2.Columns.Add(column);            

            column = new DataColumn();
            column.DataType = System.Type.GetType("System.String");
            column.ColumnName = "Column09_Recruitment";
            column.AutoIncrement = false;
            column.Caption = "Комплектация";
            column.ReadOnly = false;
            column.Unique = false;
            table2.Columns.Add(column);
                        
            column = new DataColumn();
            column.DataType = System.Type.GetType("System.String");
            column.ColumnName = "Column10_RegistrationID";
            column.AutoIncrement = false;
            column.Caption = "Учетный номер";
            column.ReadOnly = false;
            column.Unique = false;
            table2.Columns.Add(column);
                        
            column = new DataColumn();
            column.DataType = System.Type.GetType("System.String");
            column.ColumnName = "Column11_SubComment";
            column.AutoIncrement = false;
            column.Caption = "Примечание";
            column.ReadOnly = false;
            column.Unique = false;
            table2.Columns.Add(column);

            column = new DataColumn();
            column.DataType = System.Type.GetType("System.String");
            column.ColumnName = "Column12_Notes";
            column.AutoIncrement = false;
            column.Caption = "Заметки";
            column.ReadOnly = false;
            column.Unique = false;
            table2.Columns.Add(column);

            dataSet.Tables.Add(table2);
             
            row = table2.NewRow();
            indexTable = 0;
            row["Column00_IndexTable2"] = indexTable;
            table2.Rows.Add(row);
        }

        private void MakeDataRelation()
        {
            DataColumn parentColumn = dataSet.Tables["ParentTable"].Columns["Column0_IndexTable1"];
            DataColumn childColumn = dataSet.Tables["ChildTable"].Columns["Column00_IndexTable2"];
            DataRelation relation = new DataRelation("parent2Child", parentColumn, childColumn);
            dataSet.Tables["ChildTable"].ParentRelations.Add(relation);
        }

        private void BindToDataGridView()
        {
            dataGridView1.DataSource = dataSet.Tables["ParentTable"];
            dataGridView2.DataSource = dataSet.Tables["ChildTable"];            
        }
                   

        private void toolStripButton1_Click(object sender, EventArgs e)
        {
           dataSet.ReadXml("123.xml");
        }              

        private void toolStripButton2_Click(object sender, EventArgs e)
        {            
            dataSet.WriteXml("123.xml");
        }        

        private void toolStripButton4_Click(object sender, EventArgs e)
        {               
            CurrencyManager cmgr = (CurrencyManager)this.dataGridView1.BindingContext[this.dataGridView1.DataSource];
            DataRow row = ((DataRowView)cmgr.Current).Row;
            string column0_IndexTable1 = row["Column0_IndexTable1"].ToString();
            
            row = table2.NewRow();
            row["Column00_IndexTable2"] = column0_IndexTable1;
            table2.Rows.Add(row);
        }
    }
}


Это сообщение отредактировал(а) okaton - 20.10.2008, 12:14
PM MAIL   Вверх
okaton
Дата 20.10.2008, 12:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Теперь как-то нужно опять связать 1 и 2 таблицу и при создании строк предусмотреть обновление Column0_IndexTable1 и Column00_IndexTable2  smile 
Автоинкремент работает как-то не правильно, почему он увеличивается если строка не создалась?

P.S.  А что такое вот это (я понимаю что это первичный ключ таблицы, как его использовать?)
Код

DataColumn[] PrimaryKeyColumns = new DataColumn[1];
PrimaryKeyColumns[0] = table1.Columns["Column0_IndexTable1"];
table1.PrimaryKey = PrimaryKeyColumns;

и вот это (тут я понимаю организовываются связи, а как организовать подходящую для меня?)
Код

DataColumn parentColumn = dataSet.Tables["ParentTable"].Columns["Column0_IndexTable1"];
DataColumn childColumn = dataSet.Tables["ChildTable"].Columns["Column00_IndexTable2"];
DataRelation relation = new DataRelation("parent2Child", parentColumn, childColumn);
dataSet.Tables["ChildTable"].ParentRelations.Add(relation);


P.P.S.
Можно каким-либо образом воздействовать на dataGridView2_UserAddedRow чтобы при добавлении новой строки в dataGridView2 учитывался этот код, если вставить на прямую соответственно добавятся много не нужных строк
Код
             
            CurrencyManager cmgr = (CurrencyManager)this.dataGridView1.BindingContext[this.dataGridView1.DataSource];
            DataRow row = ((DataRowView)cmgr.Current).Row;
            string column0_IndexTable1 = row["Column0_IndexTable1"].ToString();
            
            row = table2.NewRow();
            row["Column00_IndexTable2"] = column0_IndexTable1;
            table2.Rows.Add(row);       


Это сообщение отредактировал(а) okaton - 20.10.2008, 13:20
PM MAIL   Вверх
Страницы: (3) Все 1 [2] 3 
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
stab
mr.DUDA
Exception

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

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

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


 




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


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

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