20251001 vb sql 詳細log

更新 發佈閱讀 8 分鐘

好的,這是一個非常核心的開發問題。要看到 VB 與 SQL 之間更詳細的紀錄,可以從「SQL Server 端」、「VB 應用程式端」以及「中間攔截」三個層面切入。 核心策略 * 從 SQL Server 下手:看資料庫實際收到了什麼 這是最直接、最準確的方式,能看到任何應用程式(不只你的 VB 程式)對資料庫發出的所有指令。 * 工具:SQL Server Profiler 或 Extended Events * SQL Server Profiler (圖形化工具,較舊但直觀): * 在 SQL Server Management Studio (SSMS) 中,點擊「工具」->「SQL Server Profiler」。 * 連線到你的資料庫執行個體。 * 建立一個新的「追蹤 (Trace)」,可以選擇 TSQL_SQL-ATTENTION、RPC:Completed 和 SQL:BatchCompleted 等事件。 * 設定篩選條件 (Filter),例如只看特定資料庫、特定登入帳號的活動。 * 執行你的 VB 程式,Profiler 視窗會即時顯示所有執行的 SQL 指令、參數、執行時間等詳細資訊。 * Extended Events (XEvents) (更現代、效能更好): * 在 SSMS 的「物件總管」中,展開「管理」->「擴充事件」->「工作階段」。 * 右鍵點擊「工作階段」->「新增工作階段」。 * 設定要擷取的事件,例如 sql_statement_completed。 * 設定篩選條件與儲存目標 (例如儲存到檔案)。 * 啟動工作階段,它會在背景紀錄所有活動,對伺服器效能影響較小。 * 從 VB 應用程式端下手:看你的程式碼發出了什麼 在程式碼中加入紀錄點,適合在開發與偵錯階段使用。 * 方法一:最基礎的 Try...Catch 捕捉錯誤 這是最基本也必須做到的。當 SQL 執行出錯時,可以捕捉到非常詳細的錯誤資訊。 Imports System.Data.SqlClient ' ... 你的程式碼 ... Try ' 執行你的 SQL Command ' cmd.ExecuteNonQuery() Catch ex As SqlException ' 當 SQL Server 回報錯誤時,ex 會包含非常詳細的資訊 ' ex.Number: SQL 錯誤代碼 ' ex.Message: 錯誤訊息 ' ex.StackTrace: 程式碼的錯誤堆疊 Console.WriteLine($"SQL Error Number: {ex.Number}") Console.WriteLine($"Error Message: {ex.Message}") ' 你可以將這些資訊寫入日誌檔 Catch ex As Exception ' 捕捉其他非 SQL 的例外 Console.WriteLine($"General Error: {ex.Message}") End Try * 方法二:執行前,印出 SQL 指令 在執行 SqlCommand 之前,手動將其 CommandText 和參數印出來。 Dim sql As String = "SELECT * FROM Users WHERE UserID = @ID AND Status = @Status" Using cmd As New SqlCommand(sql, conn) cmd.Parameters.AddWithValue("@ID", 123) cmd.Parameters.AddWithValue("@Status", "Active") ' --- 紀錄點 --- Dim fullCommand As New System.Text.StringBuilder() fullCommand.AppendLine($"Executing SQL: {cmd.CommandText}") For Each p As SqlParameter In cmd.Parameters fullCommand.AppendLine($" - {p.ParameterName}: {p.Value}") Next Debug.Print(fullCommand.ToString()) ' 輸出到 Visual Studio 的「輸出」視窗 ' 或者寫入日誌檔 ' --- 紀錄點結束 --- ' 實際執行 ' Dim reader = cmd.ExecuteReader() End Using * 方法三:使用專業日誌框架 (Logging Framework) 這是最專業、最推薦的作法。透過 NLog、Serilog 等框架,可以更有彈性地控制日誌的輸出等級(Debug, Info, Error)與目的地(文字檔、資料庫、雲端)。 * 使用 Visual Studio 偵錯工具 這是最即時的互動式偵錯方式。 * 在 cmd.ExecuteNonQuery() 或 cmd.ExecuteReader() 這行程式碼左側設定「中斷點 (Breakpoint)」。 * 以偵錯模式 (F5) 執行程式。 * 當程式停在中斷點時,將滑鼠移到 cmd 物件上,或在「監看式」視窗中查看它。 * 你可以展開 cmd 物件,清楚看到 CommandText 的內容以及 Parameters 集合中的所有參數與其數值。 如何選擇? | 你的目標 | 最佳方案 | |---|---| | 想監控伺服器上所有 SQL 活動,找出效能瓶頸 | SQL Server Profiler 或 Extended Events | | 偵錯某個特定功能,想知道傳入的參數對不對 | Visual Studio 偵錯工具 + 在程式碼中印出 SQL | | 想在系統上線後,持續紀錄所有發生的錯誤 | Try...Catch 結合 專業日誌框架 | | 想知道某個指令為什麼執行失敗 | 從 Try...Catch 開始,再用 Profiler 看細節 | 從這幾個方向著手,你就能像偵探一樣,精準掌握 VB 與 SQL 之間的所有互動細節。


留言
avatar-img
Pocheng Chiu的沙龍
0會員
24內容數
Pocheng Chiu的沙龍的其他內容
2025/10/01
了解,你的重點是「如何用 VB.NET 動態產生包含訂單資訊的信件內文 (HTML Body)」,以便寄給業務。 核心是使用 StringBuilder 來有效率地組合 HTML 字串,並將解析後的 EDI 資料填入其中。 最佳實踐:使用 StringBuilder 當需要組合複雜或多行字串時,Sy
2025/10/01
了解,你的重點是「如何用 VB.NET 動態產生包含訂單資訊的信件內文 (HTML Body)」,以便寄給業務。 核心是使用 StringBuilder 來有效率地組合 HTML 字串,並將解析後的 EDI 資料填入其中。 最佳實踐:使用 StringBuilder 當需要組合複雜或多行字串時,Sy
2025/09/24
好的,處理錯誤是完整流程的關鍵。這非常重要。 我們一樣利用先前建立的 Cookie 機制來傳遞錯誤信號,這個方法同樣優雅且可靠。 狠|核心思路 思路很簡單: * 成功時:Cookie 的值等於我們發送的 Token。 * 失敗時:我們讓 Cookie 的值等於一個約定好的、以 "error:"
2025/09/24
好的,處理錯誤是完整流程的關鍵。這非常重要。 我們一樣利用先前建立的 Cookie 機制來傳遞錯誤信號,這個方法同樣優雅且可靠。 狠|核心思路 思路很簡單: * 成功時:Cookie 的值等於我們發送的 Token。 * 失敗時:我們讓 Cookie 的值等於一個約定好的、以 "error:"
2025/09/24
好的,這個情境非常典型,因為 Return FileResult 會直接將檔案串流 (stream) 回傳給瀏覽器,前端的 JavaScript 無法直接監測到下載的「完成」事件。 這是一個瀏覽器機制的限制,但我們可以用一個非常經典且可靠的技巧來完美解決它。 狠|問題穿透:為何 JS 無法監測?
2025/09/24
好的,這個情境非常典型,因為 Return FileResult 會直接將檔案串流 (stream) 回傳給瀏覽器,前端的 JavaScript 無法直接監測到下載的「完成」事件。 這是一個瀏覽器機制的限制,但我們可以用一個非常經典且可靠的技巧來完美解決它。 狠|問題穿透:為何 JS 無法監測?
看更多
你可能也想看
Thumbnail
資料庫之備份工作大都是自動執行,但是執行結果是否成功,需要安排人員去檢查,有時疏忽忘記確認作業,致備份工作失敗仍不知道,等到有一天需要回復舊有資料的場合時,才發現找不到過去某段期間的備份資料,造成無法彌補之後果。   2.    改善: 2.1 設計一執行檔,功能為打開備
Thumbnail
資料庫之備份工作大都是自動執行,但是執行結果是否成功,需要安排人員去檢查,有時疏忽忘記確認作業,致備份工作失敗仍不知道,等到有一天需要回復舊有資料的場合時,才發現找不到過去某段期間的備份資料,造成無法彌補之後果。   2.    改善: 2.1 設計一執行檔,功能為打開備
Thumbnail
※ 把record加到table有兩種方式: VALUES • SELECT ※ 語法 INSERT INTO VALUES 語法: Record 代表一組值的集合,每個值對應到表格中的一個欄位(column)。 INSERT INTO 語法用來指定要插入資料的表格。 需要提供一個
Thumbnail
※ 把record加到table有兩種方式: VALUES • SELECT ※ 語法 INSERT INTO VALUES 語法: Record 代表一組值的集合,每個值對應到表格中的一個欄位(column)。 INSERT INTO 語法用來指定要插入資料的表格。 需要提供一個
Thumbnail
軟體系統的發展歷程大多相似,首重解決基本需求、提供操作介面,進而提升安全性、擴充功能、優化操作。
Thumbnail
軟體系統的發展歷程大多相似,首重解決基本需求、提供操作介面,進而提升安全性、擴充功能、優化操作。
Thumbnail
Visual Basic for Applications(VBA)是一種功能強大的程式語言,廣泛用於自動化 Microsoft Office 應用程式中的重複性任務。在這篇教學文章中,我們將介紹如何使用 VBA 來新增、刪除和移動檔案。
Thumbnail
Visual Basic for Applications(VBA)是一種功能強大的程式語言,廣泛用於自動化 Microsoft Office 應用程式中的重複性任務。在這篇教學文章中,我們將介紹如何使用 VBA 來新增、刪除和移動檔案。
Thumbnail
已經存在在table裡面的那些record做更新。 ※ 語法 UPDATE [LOW_PRIORITY] [IGNORE] table_name SET column_name1 = expr1, column_name2 = expr2, … [WHERE
Thumbnail
已經存在在table裡面的那些record做更新。 ※ 語法 UPDATE [LOW_PRIORITY] [IGNORE] table_name SET column_name1 = expr1, column_name2 = expr2, … [WHERE
Thumbnail
本文深度解析賽勒布倫尼科夫的舞臺作品《傳奇:帕拉贊諾夫的十段殘篇》,如何以十段殘篇,結合帕拉贊諾夫的電影美學、象徵意象與當代政治流亡抗爭,探討藝術在儀式消失的現代社會如何承接意義,並展現不羈的自由靈魂。
Thumbnail
本文深度解析賽勒布倫尼科夫的舞臺作品《傳奇:帕拉贊諾夫的十段殘篇》,如何以十段殘篇,結合帕拉贊諾夫的電影美學、象徵意象與當代政治流亡抗爭,探討藝術在儀式消失的現代社會如何承接意義,並展現不羈的自由靈魂。
Thumbnail
全新版本的《三便士歌劇》如何不落入「復刻經典」的巢臼,反而利用華麗的秀場視覺,引導觀眾在晚期資本主義的消費愉悅之中,而能驚覺「批判」本身亦可能被收編——而當絞繩升起,這場關於如何生存的黑色遊戲,又將帶領新時代的我們走向何種後現代的自我解構?
Thumbnail
全新版本的《三便士歌劇》如何不落入「復刻經典」的巢臼,反而利用華麗的秀場視覺,引導觀眾在晚期資本主義的消費愉悅之中,而能驚覺「批判」本身亦可能被收編——而當絞繩升起,這場關於如何生存的黑色遊戲,又將帶領新時代的我們走向何種後現代的自我解構?
Thumbnail
新系統建構時,可考慮採購建置VM機器,DB機器,備份機器以及網路設備等硬體機器。
Thumbnail
新系統建構時,可考慮採購建置VM機器,DB機器,備份機器以及網路設備等硬體機器。
Thumbnail
每日自動檢查資料庫運作所產生的訊息,若發現有錯誤,自動寄出警告信給擔當人員
Thumbnail
每日自動檢查資料庫運作所產生的訊息,若發現有錯誤,自動寄出警告信給擔當人員
Thumbnail
若說易卜生的《玩偶之家》為 19 世紀的女性,開啟了一扇離家的窄門,那麼《海妲.蓋柏樂》展現的便是門後的窒息世界。本篇文章由劇場演員 Amily 執筆,同為熟稔文本的演員,亦是深刻體察制度縫隙的當代女性,此文所看見的不僅僅是崩壞前夕的最後發聲,更是女人被迫置於冷酷的制度之下,步步陷入無以言說的困境。
Thumbnail
若說易卜生的《玩偶之家》為 19 世紀的女性,開啟了一扇離家的窄門,那麼《海妲.蓋柏樂》展現的便是門後的窒息世界。本篇文章由劇場演員 Amily 執筆,同為熟稔文本的演員,亦是深刻體察制度縫隙的當代女性,此文所看見的不僅僅是崩壞前夕的最後發聲,更是女人被迫置於冷酷的制度之下,步步陷入無以言說的困境。
Thumbnail
這篇文章主要是介紹了SQL查詢效能調校的方法,針對索引最佳化做了整理和分享,並提供了一些注意事項和建議。
Thumbnail
這篇文章主要是介紹了SQL查詢效能調校的方法,針對索引最佳化做了整理和分享,並提供了一些注意事項和建議。
Thumbnail
長期以來,西方美學以《維特魯威人》式的幾何比例定義「完美身體」,這種視覺標準無形中成為殖民擴張與種族分類的暴力工具。本文透過分析奈及利亞編舞家庫德斯.奧尼奎庫的舞作《轉轉生》,探討當代非洲舞蹈如何跳脫「標本式」的文化觀看。
Thumbnail
長期以來,西方美學以《維特魯威人》式的幾何比例定義「完美身體」,這種視覺標準無形中成為殖民擴張與種族分類的暴力工具。本文透過分析奈及利亞編舞家庫德斯.奧尼奎庫的舞作《轉轉生》,探討當代非洲舞蹈如何跳脫「標本式」的文化觀看。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News