Q : 기본 키가있는 여러 테이블로 구성된보기를 만들었습니다. ASP.NET에서 GridView를 사용하여 데이터베이스의 행을 업데이트하고 삭제합니다. 이 행은 두 개의 다른 테이블로 구성됩니다. ASP.NET에서 GridView를 사용하여 업데이트하고 삭제하려면 어떻게해야합니까? SQL Server는 모든 시도를하기 때문에 "여러 테이블에 액세스하기 때문에 뷰를 업데이트 할 수 없습니다"라는 말로 인해 어려움을 겪고 있습니다.여러 테이블로 구성된 VIEW에서 UPDATE/DELETE 행 SQL Server/Visual Studio
그것은 당신이 UPDATE를 자동으로 생성하고 뷰가 여러 테이블로 구성 될 때의 GridView의 "데이터 Sourc 선택"에 문을 삭제할 수 없습니다 밝혀졌습니다.
나에게 도와주세요 사람 :(
CREATE VIEW [dbo].[viewProcedureWithPrice]
AS
SELECT dbo.[PROCEDURE].ProcedureID, dbo.[PROCEDURE].Name, dbo.[PROCEDURE].Type, dbo.[PROCEDURE].Status, dbo.PRICE_HISTORY.Price,
dbo.PRICE_HISTORY.EffectivityDate
FROM dbo.[PROCEDURE] INNER JOIN
dbo.PRICE_HISTORY ON dbo.[PROCEDURE].ProcedureID = dbo.PRICE_HISTORY.ProcedureID
GO
CREATE TABLE [dbo].[PROCEDURE](
[ProcedureID] [int] IDENTITY(1,1) NOT NULL,
[Name] [varchar](100) NULL,
[Type] [varchar](100) NULL,
[Status] [varchar](20) NULL,
CONSTRAINT [PK_PROCEDURE] PRIMARY KEY CLUSTERED
(
[ProcedureID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[PRICE_HISTORY](
[HistoryID] [int] IDENTITY(1,1) NOT NULL,
[ProcedureID] [int] NULL,
[Price] [decimal](10, 2) NULL,
[EffectivityDate] [date] NULL,
CONSTRAINT [PK_PRICE_HISTORY] PRIMARY KEY CLUSTERED
(
[HistoryID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[PRICE_HISTORY] WITH CHECK ADD CONSTRAINT [FK_PRICE_HISTORY_PROCEDURE] FOREIGN KEY([ProcedureID])
REFERENCES [dbo].[PROCEDURE] ([ProcedureID])
GO
ALTER TABLE [dbo].[PRICE_HISTORY] CHECK CONSTRAINT [FK_PRICE_HISTORY_PROCEDURE]
GO
이 방식은 구식이지만 항상 ObjectDataSource를 개체를 사용할 수 있습니다, 그것은 당신이-드릴 아래로 객체로와의 턴은 "필요한를 만들 수 있습니다 것"ODS "의 특정 테이블을 선택을 할 수 있습니다 CRUD "문을 사용하여 기본 CRUD (Create-Read-Update-Delete) 기능을 자동으로 처리합니다. –