UpdateCommand для Asp GridView с использованием объединения двух таблиц - PullRequest
0 голосов
/ 16 марта 2011

У меня есть две таблицы, к которым я присоединяюсь sims и транзакции и отображается в Asp GridView с использованием SQLDatasource

Затем у меня есть ASP GridView со следующими операторами выбора и обновления:

SelectCommand="SELECT * FROM sims s INNER JOIN TransactionLog AS tl ON s.id = tl.SimsId"     
UpdateCommand="UPDATE SET s.Notes=@Notes FROM sims s INNER JOIN TransactionLog AS tl ON s.id = tl.SimsId WHERE s.id=@id and tl.Id=@Id1"

В настоящее время у меня только столбец «Примечания» не для чтения, но я хотел бы добавить другие позже, как только я смогу заставить оператор обновления работать в первую очередь для столбца примечаний.

Когда я пытаюсь обновить столбец заметок, я получаю следующую ошибку: Неверный синтаксис рядом с ключевым словом «SET».]

Ммм, надеюсь, мой вопрос сформулирован достаточно четко.

1 Ответ

1 голос
/ 16 марта 2011

Вот как вы пишете и оператор SQL UPDATE с предложением FROM.

drop table t2
drop table t1
go

create table t1 (
Id int not null identity(1,1) primary key,
Name varchar(50) null
)

create table t2 (
t1Id int not null foreign key references t1(id),
Name varchar(50) null
)

insert into t1(name) values('T1Test1')
insert into t1(name) values('T1Test2')
insert into t2(t1Id, name) values(1, 'T2Test1')
insert into t2(t1Id, name) values(2, 'T2Test2')

-- Have a look at the data
select * from t1 inner join t2 on t1.Id = t2.t1Id

update t2 
set t2.Name = 'T2Test1_changed'
from t2 inner join t1 on t2.t1Id = t1.Id
where t1.Id = 1

-- See the changes
select * from t1 inner join t2 on t1.Id = t2.t1Id

Это означает, что ваш оператор должен выглядеть так:однако сомневайтесь в предложении WHERE.Возможно, в этом нет необходимости использовать оба идентификатора, но только вы это знаете.

Попробуйте выполнить запросы в SQL Management Studio, прежде чем применять их в своем приложении для улучшения отладки.Документы MSDN для оператора UPDATE: http://msdn.microsoft.com/en-us/library/ms177523.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...