關於作者:
本文由微軟最有價值專 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 陳述式。
其他相關資訊
請讓我們知道
![]() |
還滿意我們寫的內容嗎?無論您是遇到了以下任何一種情況: |