簡體   English   中英

如何編寫存儲過程

[英]How to write the Stored Procedure

我有一種情況,

書號| 書籍作者| 出版物| 版本

我在上面的字段中使用的控件,書號中的標簽,書籍作者中的組合框,出版物中的標簽和版本中的組合框。

以上是我的UI,如果我從組合框中選擇書籍作者(組合框中的值是從db檢索),則發布和版本的值應根據我從組合框中選擇的項目從db中檢索。 頁面不應該刷新。 如何為此編寫存儲過程。

看起來你真的在問錯誤的問題。 關於如何編寫select語句(通過存儲過程,或不是),這里有幾個很好的答案。

但是,從數據庫獲取數據與將數據放入UI上的相應控件幾乎沒有關系,與確保頁面不刷新無關。

如果您真的對如何為簡單的select語句編寫存儲過程感興趣,請接受@ MikaelEriksson的答案,但添加適當的SET語句以最大限度地減少將來的升級問題。 您還需要修改列名和表名以反映您的實際數據(當然)。

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE GetBooksByAuthorID
   @AuthorID int
AS
BEGIN
    SELECT B.BookName,
           B.BookID
    FROM Books as B
    WHERE B.AuthorID = @AuthorID
    ORDER BY B.BookName 
END
GO

如果您對如何將數據綁定到UI感興趣,以及如何在不刷新UI的情況下執行此操作; 那么你需要問一個關於這個的新問題。 它應該特定於您的Web框架。 一般來說,如果您想要在沒有刷新的情況下更新Web UI,您將使用某種形式的AJAX。

如果你要做的只是級聯框,你編寫一個返回適當行的SELECT查詢。 這不是存儲過程的作用。

SELECT * FROM `books` WHERE `author_id` = [author_id]

存儲過程用於處理數據,而不是選擇它。

這是您編寫將為您獲取內容的存儲過程的方法。 我當然不知道你想要什么輸出以及你需要什么參數......

create procedure GetBooksByAuthorID
  @AuthorID int
as

select B.BookName,
       B.BookID
from Books as B
where B.AuthorID = @AuthorID
order by B.BookName    

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM