使用 Microsoft 登入
登入或建立帳戶。
您好:
選取其他帳戶。
您有多個帳戶
選擇您要用來登入的帳戶。

關於作者:

本文由微軟最有價值專 MVP TerryChuang 提供。微軟十分感謝 MVP 主動地將他們的經驗與上百萬名其他技術使用者交流。MVP TerryChuang 同時也將此篇文章放在他的部落格內,歡迎您按 此處  瀏覽 MVP TerryChuang 更多的技術文章、經驗分享與觀點。

問題的來龍去脈

當您使用 SQLDataSource 作為存取 SQL Server 的資料來源時,可以透過設定來源精靈來設定擷取資料是要透過自訂的 T-SQL 陳述式、Stored Procedure 或直接指定資料表或檢視(如下圖),此外我們也可以利用進階按鈕來設定 Insert、Update、Delete 陳述式(下圖紅色框框)。





當您點選進階按鈕開啟進階 SQL 產生選項時,可能發現產生 Insert、Update、Delete 陳述式以及使用開放式並行存取的按鈕被反白無法勾選(如下圖)。





問題的發生原因

造成這個問題的原因在於 SELECT 陳述式所查詢的資料表沒有設定 Primary Key(如下圖),導致 SQLDataSource 無法判斷刪除和更新該以哪個欄位為 WHERE 條件,因此禁止勾選產生 Insert、Update、Delete 陳述式以及使用開放式並行存取。





問題的解決方法

解決方式很簡單,只需把資料表設定 Primary Key(如下圖左)後重新再開啟進階 SQL 產生選項,即可以設定產生 Insert、Update、Delete 陳述式。








其他相關資訊

SqlDataSource Web Server Control Overview

請讓我們知道

還滿意我們寫的內容嗎?無論您是遇到了以下任何一種情況:
「太好了!問題解決了。」
「問題沒有解決,我有更好的建議。」
都歡迎您利用本篇文章底部的意見調查表,寫下您寶貴的意見。
也期待您的鼓勵,讓我們為您創造更多實用的技術文章。

需要更多協助嗎?

擴展您的技能

探索訓練 >

優先取得新功能

加入 MICROSOFT 365 測試人員 >

這項資訊有幫助嗎?

您對語言品質的滿意度如何?
以下何者是您會在意的事項?

感謝您的意見反應!

×