powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Динамическая подстановка вычисленных значений T-SQL табличной функции в DataSet на C#
3 сообщений из 3, страница 1 из 1
Динамическая подстановка вычисленных значений T-SQL табличной функции в DataSet на C#
    #37261151
gri.green
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть проблема. Мастером MSVS 2008 настроил набор данных из SQL Server. В наборе данных есть и таблицы, и представления, и функции. Мастером же сделал DataSet на эти данные. На форме сделал несколько DataGridView контролов. Сделал тип одной из колонок DataGridViewComboBoxColumn. Данными для подстановки требуется сделать результат выполнения загруженной T-SQL табличной функции, которая в качестве параметра принимает значение ячейки текущего строки другого DataGridView. Пытаюсь выполнить подстановку в момент события CellEnter контрола, в котроый нужно подставить:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
        private void dataGridViewUZTRepPipe_CellEnter(object sender, DataGridViewCellEventArgs e)
        {
            DataGridView grid = (DataGridView)sender;
            if (grid.CurrentCell.OwningColumn == idEmpCertDataGridViewTextBoxColumn)
            {
                DataRowView t = (DataRowView)fKPipeLineDrowingDeviceBindingSource.Current;
                if (t.Row[idDataGridViewTextBoxColumn3.DataPropertyName] is int)
                {
                    int idDraw = (int)t.Row[idDataGridViewTextBoxColumn3.DataPropertyName];

                    RLDDataSet.cert_from_drawDataTable dt = cert_from_drawTableAdapter.GetData(idDraw);
                    BindingSource cert_from_draw2BindingSource = new BindingSource();
                    cert_from_draw2BindingSource.DataSource = cert_from_drawTableAdapter.GetData(idDraw);
                    cert_from_draw2BindingSource.DataMember = "cert_from_draw"; // cert_from_draw - название
                    DataGridViewComboBoxColumn column =
                        (DataGridViewComboBoxColumn)grid.Columns[idEmpCertDataGridViewTextBoxColumn.DataPropertyName];
                    column.DataSource = cert_from_draw2BindingSource;
                    column.DisplayMember = "idFIO";
                    column.ValueMember = "id";
                }
            }
        }
Получаю ошибку --> Свойство "cert_from_draw" для DataMember не найдено в DataSource. , хотя cert_from_draw2BindingSource.DataSource.TableName = "cert_from_draw".
Подскажите пожалуйста, в чем загвоздка?
Есть ли другой способ такой динамической подстановки?
...
Рейтинг: 0 / 0
Динамическая подстановка вычисленных значений T-SQL табличной функции в DataSet на C#
    #37261154
gri.green
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Прошу прощения, не в ту ветку поместил. Надо наверно в ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM

Модератор: Тема перенесена из форума "ASP.NET".
...
Рейтинг: 0 / 0
Динамическая подстановка вычисленных значений T-SQL табличной функции в DataSet на C#
    #37261321
gri.green
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, ошибок было много. Помогло использовать существующий, а не зановосоздаваемый BindingSourse и не менять его свойство DataMember, которое и было равно "cert_from_draw" (шаманство ;) ) Правильно вот так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
 
        private void dataGridViewUZTRepPipe_CellEnter(object sender, DataGridViewCellEventArgs e)
        {
            DataGridView grid = (DataGridView)sender;
            if (grid.CurrentCell.OwningColumn == idEmpCertDataGridViewTextBoxColumn)
            {
                DataRowView t = (DataRowView)fKPipeLineDrowingDeviceBindingSource.Current;
                if (t.Row[idDataGridViewTextBoxColumn3.DataPropertyName] is int)
                {
                    int idDraw = (int)t.Row[idDataGridViewTextBoxColumn3.DataPropertyName];

                    RLDDataSet.cert_from_drawDataTable dt = cert_from_drawTableAdapter.GetData(idDraw);
                    certfromdrawBindingSource.DataSource = dt;
                    DataGridViewComboBoxColumn column =
                        (DataGridViewComboBoxColumn)grid.Columns[grid.Columns.IndexOf(idEmpCertDataGridViewTextBoxColumn)];
                    column.DataSource = certfromdrawBindingSource;
                    column.DisplayMember = "idFIO";
                    column.ValueMember = "id";
                    column.DataPropertyName = "idEmpCert";
                }
            }    
        }

Впрочем вопрос о других способах динамической подстановки остается открытым. Есть предложения?
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Динамическая подстановка вычисленных значений T-SQL табличной функции в DataSet на C#
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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