Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.06.2017, 15:51   #1
lisica198808
Пользователь
 
Регистрация: 06.11.2012
Сообщений: 64
По умолчанию Аргумент "column" не может быть пустым

Вроде все связи установила, расписала в коде.. ну почему-то все еще ошибка на 69 строчке
Код:
              bindingSourceGroups = new BindingSource(bindingSourceSpec, "профиль-группа");
- Аргумент "column" не может быть пустым
и читала как связи делать между таблицами , и по бд самой все правильно вроде записано.
и при чем ругается на вторую таблицу, когда инициализирует данные
может что-то переделать надо? или дописать , чтоб правильно работало?

Код:
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.SqlClient;
using System.Data.OleDb;
using System.Data.ProviderBase;
using System.Data.Common;
using System.Data.Odbc;
using System.Data.Sql;
using System.Data.SqlTypes;
using System.Collections;
 
 
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        OleDbConnection conn;
        OleDbDataAdapter adapterSpec;
        OleDbDataAdapter adapterGroups;
        OleDbDataAdapter adapterStudents;
 
        DataSet dataSet;
        BindingSource bindingSourceSpec;
        BindingSource bindingSourceGroups;
      //  BindingSource bindingSourceStudents;
      
        public Form1()
        {
            InitializeComponent();
            
            string commandText1 = "select * from  профиль";
            string commandText2 = "select * from  группа";
          //  string commandText3 = "select * from  студенты";
 
            string ConnectString = @"Provider=Microsoft.Jet.OLEDB.4.0;" +
                 @"Data Source=D:\УЧЕБА\univer (mdb).mdb";
 
            conn = new OleDbConnection(ConnectString);
            conn.Open();
            adapterSpec = new OleDbDataAdapter(commandText1, conn);
            adapterGroups = new OleDbDataAdapter(commandText2, conn);
            adapterStudents = new OleDbDataAdapter(commandText2, conn);
            
            dataSet = new DataSet();
            adapterSpec.Fill(dataSet, "профиль");
            adapterGroups.Fill(dataSet, "группа");
            adapterStudents.Fill(dataSet, "студенты");
 
            DataRelation dr1;
            dr1 = new DataRelation("профиль-группа", //название связи
            dataSet.Tables["профиль"].Columns["id_профиль"],//первичный ключ главной таблицы
            dataSet.Tables["группа"].Columns["id_профиль"]);//внешний ключ подчиненной таблицы
           
            //DataRelation dr2;
            //dr2 = new DataRelation("группа-студенты", //название связи
          
            //dataSet.Tables["группа"].Columns["id_профиль"], //первичный ключ главной таблицы
            //dataSet.Tables["студенты"].Columns["Группа"]);//внешний ключ подчиненной таблицы
 
             bindingSourceSpec = new BindingSource(dataSet, "профиль");
              spec.DataSource = bindingSourceSpec;
 
              bindingSourceGroups = new BindingSource(bindingSourceSpec, "профиль-группа");  
             groups.DataSource = bindingSourceGroups;
 
 
                    
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
            // TODO: данная строка кода позволяет загрузить данные в таблицу "_univer__mdb_DataSet.студенты". При необходимости она может быть перемещена или удалена.
            this.студентыTableAdapter.Fill(this._univer__mdb_DataSet.студенты);
            // TODO: данная строка кода позволяет загрузить данные в таблицу "_univer__mdb_DataSet.группа". При необходимости она может быть перемещена или удалена.
            this.группаTableAdapter.Fill(this._univer__mdb_DataSet.группа);
            // TODO: данная строка кода позволяет загрузить данные в таблицу "_univer__mdb_DataSet.профиль". При необходимости она может быть перемещена или удалена.
            this.профильTableAdapter.Fill(this._univer__mdb_DataSet.профиль);
 
        }
    }
}
меняю на такое :
Код:
  bindingSourceSpec = new BindingSource(dataSet, "профиль");
              spec.DataSource = bindingSourceSpec;
 
             bindingSourceGroups = new BindingSource(dataSet, "группа");  
             groups.DataSource = bindingSourceGroups;
Запускается, но ничего не происходит
выбирает все из всех,а я хочу чтоб выбрав определенный профиль - можно было выбрать только из групп которые в него входят. а этого нет

как сделать правильно, чтоб работало?подскажите пожалуйста
lisica198808 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ошибка приложения инструкция по адресу "0х00400000" обратилась к памяти по адресу "0х00400000". Память не может быть "wr sanalia Помощь студентам 0 30.09.2011 22:20
Проблема при компиляции в Dev-C++: "инструкция ... обратилась к памяти ... Память не может быть read." Catharsis Общие вопросы C/C++ 3 14.05.2010 02:12
Ошибка "Acces violation" в чем может быть причина TRIZER Общие вопросы Delphi 2 02.05.2010 12:10
Память не может быть "read" pilot34 Общие вопросы C/C++ 7 21.12.2009 01:06
Память не может быть "read" Alewteena Безопасность, Шифрование 3 27.08.2008 05:16