Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Работа с DataRelation / 5 сообщений из 5, страница 1 из 1
19.08.2006, 20:58
    #33930539
Red Wind
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с DataRelation
Доброго, всем, времени суток!

Скажите как правильно связывать колонки таблиц в DataSet с помощю DataRelation. Потратил на это пол дня, но ничего хорошего из этого не получилось, пришлось вернуться практически к самому началу...

На форме находится два DataGridView. И мне нужно, что бы все изменения в одном из них, отображались во втором. Вот мой код, чего здесь не хватает?
Код: plaintext
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.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace Testing
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        DataSet ds = new DataSet("test");
        DataTable One = new DataTable("One");
        DataColumn one = new DataColumn("one", Type.GetType("System.String"));

        DataTable Two = new DataTable("Two");
        DataColumn two = new DataColumn("two", Type.GetType("System.String"));

        private void Form1_Load(object sender, EventArgs e)
        {
            one.AllowDBNull = false;
            one.Unique = true;
            two.AllowDBNull = false;
            two.Unique = true;

            One.Columns.Add(one);
            Two.Columns.Add(two);
            ds.Tables.AddRange(new DataTable[] { One, Two });
            dataGridView1.DataSource = ds.Tables["one"];
            dataGridView2.DataSource = ds.Tables["two"];

            DataRelation dr = new DataRelation("test",
               ds.Tables["One"].Columns["one"],
               ds.Tables["Two"].Columns["two"], true);
            ds.Relations.Add(dr);
        }
    }
}
...
Рейтинг: 0 / 0
22.08.2006, 11:52
    #33934104
SanekZZ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с DataRelation
попробуй так:
Код: plaintext
1.
2.
dr.Relations.Add("Relation1",
            dr.Tables["one"].Columns["one"],
            drTables["two"].Columns["two"], false);
...
Рейтинг: 0 / 0
22.08.2006, 11:57
    #33934131
SanekZZ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с DataRelation
а потом
Код: plaintext
1.
2.
3.
4.
5.
6.
DataGridView1.DataSource = dr;
DataGridView1.DataMember = "One"

DataGridView2.DataSource = dr;
DataGridView2.DataMember = "One.Relation"

...
Рейтинг: 0 / 0
22.08.2006, 11:59
    #33934143
SanekZZ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с DataRelation
не много ошибся Relation1
...
Рейтинг: 0 / 0
26.08.2006, 01:42
    #33944494
RasimS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с DataRelation
Red WindДоброго, всем, времени суток!

Скажите как правильно связывать колонки таблиц в DataSet с помощю DataRelation. Потратил на это пол дня, но ничего хорошего из этого не получилось, пришлось вернуться практически к самому началу...

На форме находится два DataGridView. И мне нужно, что бы все изменения в одном из них, отображались во втором. Вот мой код, чего здесь не хватает?
Код: plaintext
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.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace Testing
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        DataSet ds = new DataSet("test");
        DataTable One = new DataTable("One");
        DataColumn one = new DataColumn("one", Type.GetType("System.String"));

        DataTable Two = new DataTable("Two");
        DataColumn two = new DataColumn("two", Type.GetType("System.String"));

        private void Form1_Load(object sender, EventArgs e)
        {
            one.AllowDBNull = false;
            one.Unique = true;
            two.AllowDBNull = false;
            two.Unique = true;

            One.Columns.Add(one);
            Two.Columns.Add(two);
            ds.Tables.AddRange(new DataTable[] { One, Two });
            dataGridView1.DataSource = ds.Tables["one"];
            dataGridView2.DataSource = ds.Tables["two"];

            DataRelation dr = new DataRelation("test",
               ds.Tables["One"].Columns["one"],
               ds.Tables["Two"].Columns["two"], true);
            ds.Relations.Add(dr);
        }
    }
}

Создай мастером подключение и посмотри, как он создает релейшен.
...
Рейтинг: 0 / 0
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Работа с DataRelation / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]