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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> DataClasses1DataContext Добавление данных до двух 
:(
    Опции темы
Fire44
Дата 25.9.2010, 02:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Код

Client client = new Client();
 client.PIB = t_PIB.Text;

 User user = new User();
 user.Login = t_Login.Text;
 user.Password = t_Password.Text;

 ds = new DataClasses1DataContext();
 ds.Clients.InsertOnSubmit(client);
 ds.Users.InsertOnSubmit(user);
 ds.SubmitChanges();

Есть две таблицы у каждой есть поле id.
Как добавить данные до двух таблиц?
PM MAIL   Вверх
jonie
Дата 11.10.2010, 21:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

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



ну просто и добавь....
1) сделай базу
Код

create table Departament(DepartamentId int primary key identity(1,1), Name nvarchar(256))
GO
create table [User] (UserId int primary key identity(1,1), Name nvarchar(256), DepartamentId int not null)
GO

alter table [User] add constraint FK_user_Departament foreign key (DepartamentId) REFERENCES  Departament(DepartamentId)
GO

insert into Departament (Name) 
select 'dep1'
union all
select 'dep2'


insert into [User] (Name, DepartamentId)
select 'Jonie', 1
union all
select 'Fire44', 2

--проверочный скрипт 8)
select * 
from [User] u 
join Departament d on d.DepartamentId = u.DepartamentId


2) далее добавь linq2sql базу, получится так:
user posted image

3) добавь DataSource как object, укажи тип объекта User объект в мастере добавляния. Получится так:
[IMG=http://img839.imageshack.us/img839/2765/datasource.th.png][/IMG]
(заметь что поставили "Detail" где выделено стрелкой)

4) перетащи эти детали на форму, и сделай Enable=true для кнопки сохранить, получится так:
[IMG=http://img338.imageshack.us/img338/7762/formd.png][/IMG]

5) дважды тыркни на кнопку save и впиши код:
   
Код

     private void userBindingNavigatorSaveItem_Click(object sender, EventArgs e)
        {
            User user = userBindingSource.Current as User;
            if (null != user)
            {
                using (TransactionScope tran = new TransactionScope())
                {
                    user.Departament = new Departament()
                    {
                        Name = nameTextBox1.Text
                    };
                    ctx.Departaments.InsertOnSubmit(user.Departament);
                    ctx.Users.InsertOnSubmit(user);
                    var changed = ctx.GetChangeSet();
                    ctx.SubmitChanges();

                    tran.Complete();
                }
                
                userBindingSource.DataSource = ctx.Users;   //reload
            }
        }


6) добавь в референсы сборку System.Transactions.dll

Проверяй, нажимая на плюсик на панели и вводя имя юзера и имя департамента, всё должно заработать...


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | LINQ (Language-Integrated Query) | Следующая тема »


 




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


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

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