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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помощь новичку в ADO.NET, Проблема при Relation создании в C#  
V
    Опции темы
maxfol
Дата 1.12.2009, 23:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Есть две таблицы "Студенты" и "Оценки". В таблице "Студенты" есть PK "ID". В таблице "Оценки" нет ключа. при попытке создать Relation между "ID" и "StudentID"   
выкидывает Exeption. 

Код

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;

namespace dsStudents
{
    class Program
    {
        static void Main(string[] args)
        {
            DataSet studentList = new DataSet();
            DataTable sInfo = new DataTable("Students");
            DataTable sGrade = new DataTable("Student Grade");

            DataColumn dc = new DataColumn();
            dc.ColumnName = "ID";
            dc.DataType = typeof(System.String);
            sInfo.Columns.Add(dc);

            dc = new DataColumn();
            dc.ColumnName = "FName";
            dc.DataType = typeof(System.String);
            sInfo.Columns.Add(dc);

            dc = new DataColumn();
            dc.ColumnName = "LName";
            dc.DataType = typeof(System.String);
            sInfo.Columns.Add(dc);

            dc = new DataColumn();
            dc.ColumnName = "StudentID";
            dc.DataType = typeof(System.String);
            sGrade.Columns.Add(dc);

            dc = new DataColumn();
            dc.ColumnName = "Prof";
            dc.DataType = typeof(System.String);
            sGrade.Columns.Add(dc);

            dc = new DataColumn();
            dc.ColumnName = "Grade";
            dc.DataType = typeof(System.Int32);
            sGrade.Columns.Add(dc);

            DataRow studInfoRow = sInfo.NewRow();
            studInfoRow["ID"] = "313882557";
            studInfoRow["FName"] = "Maxim";
            studInfoRow["LName"] = "Folko";
            sInfo.Rows.Add(studInfoRow);

            DataRow studGrade = sGrade.NewRow();
            studGrade["StudentID"] = "313882557";
            studGrade["Prof"] = "Math";
            studGrade["Grade"] = 70;
            sGrade.Rows.Add(studGrade);

            DataColumn[] pk = new DataColumn[1];
            pk[0] = sInfo.Columns["ID"];
            sInfo.PrimaryKey = pk;

            studentList.Relations.Add("StudGrade", studentList.Tables["Students"].Columns["ID"],
                studentList.Tables["Student Grade"].Columns["StudentID"]);
            //здесь выдает ошибку

            foreach (DataRelation rel in studentList.Relations)
            {
                Console.WriteLine("Relation Name : (0)", rel.RelationName.ToString());
                Console.WriteLine("Parent TaleName : (0)", rel.ParentTable.TableName.ToString());
                Console.WriteLine("Child TableName : (0)", rel.ChildTable.TableName.ToString());
            }
        }
    }
}



Exeption здесь не выкладиваю, так как Windows на иврите и Exeption тоже соответственно на иврите. Помогите пожалуйста...  в нете искал, вроде у меня все правильно написанно....  Заранее спасибо...
PM MAIL   Вверх
tol05
Дата 1.12.2009, 23:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1632
Регистрация: 21.12.2006
Где: Харьков

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



Цитата(maxfol @  1.12.2009,  22:17 Найти цитируемый пост)
В таблице "Оценки" нет ключа
эта информация ... к чему?

Цитата(maxfol @  1.12.2009,  22:17 Найти цитируемый пост)
Exeption здесь не выкладиваю, так как Windows на иврите и Exeption тоже соответственно на иврите. 


У меня эксепшен на русском... "В экземпляре не задана ссылка на объект".

DataSet studentList после создания не используется нигде вплоть до строки

Код

studentList.Relations.Add("StudGrade", studentList.Tables["Students"].Columns["ID"], studentList.Tables["Student Grade"].Columns["StudentID"]);


наверное нужно таблицы в него добавить? 

P.S.
Да, кстати:
Цитата

Console.WriteLine("Relation Name : {0}", rel.RelationName.ToString());



Это сообщение отредактировал(а) tol05 - 1.12.2009, 23:46


--------------------
На хорошей работе и сны хорошие снятся.
PM MAIL   Вверх
maxfol
Дата 2.12.2009, 00:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



проглядел строчку, и не те скобки поставил...  работает, спасибо
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


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

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


 




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


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

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