powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Работа с DataRelation
5 сообщений из 5, страница 1 из 1
Работа с DataRelation
    #33930539
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
Работа с DataRelation
    #33934104
SanekZZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
попробуй так:
Код: plaintext
1.
2.
dr.Relations.Add("Relation1",
            dr.Tables["one"].Columns["one"],
            drTables["two"].Columns["two"], false);
...
Рейтинг: 0 / 0
Работа с DataRelation
    #33934131
SanekZZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а потом
Код: plaintext
1.
2.
3.
4.
5.
6.
DataGridView1.DataSource = dr;
DataGridView1.DataMember = "One"

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

...
Рейтинг: 0 / 0
Работа с DataRelation
    #33934143
SanekZZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
не много ошибся Relation1
...
Рейтинг: 0 / 0
Работа с DataRelation
    #33944494
RasimS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
5 сообщений из 5, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Работа с DataRelation
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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