從 C# 程序執行存儲過程
本文將探討如何從 C# 程序中執行存儲過程。存儲過程是預定義的數據庫過程,可以從代碼中調用以執行特定的數據庫操作。
假設在 SQL Server 查詢窗口中創建了名為“test”的以下存儲過程:
<code class="language-sql">CREATE PROCEDURE dbo.test AS BEGIN DECLARE @command AS VARCHAR(1000), @i INT; SET @i = 0; WHILE @i < 10 BEGIN SET @command = 'SELECT ' + CAST(@i AS VARCHAR(10)); EXEC(@command); SET @i = @i + 1; END; END;</code>
要從 C# 程序執行此存儲過程,請按照以下步驟操作:
<code class="language-csharp">using System; using System.Data; using System.Data.SqlClient;</code>
<code class="language-csharp">SqlConnection conn = new SqlConnection("Server=(local);DataBase=master;Integrated Security=SSPI"); conn.Open();</code>
<code class="language-csharp">SqlCommand cmd = new SqlCommand("dbo.test", conn); cmd.CommandType = CommandType.StoredProcedure;</code>
<code class="language-csharp">int result = cmd.ExecuteNonQuery();</code>
完整的代碼:
<code class="language-csharp">using System; using System.Data; using System.Data.SqlClient; namespace StoredProcedureExample { class Program { static void Main(string[] args) { // 创建与数据库的连接 string connectionString = "Server=(local);DataBase=master;Integrated Security=SSPI"; using (SqlConnection conn = new SqlConnection(connectionString)) { // 创建一个命令来执行存储过程 using (SqlCommand cmd = new SqlCommand("dbo.test", conn) { CommandType = CommandType.StoredProcedure }) { try { // 打开连接并执行存储过程 conn.Open(); int result = cmd.ExecuteNonQuery(); Console.WriteLine("存储过程执行成功。"); } catch (Exception ex) { // 处理可能发生的任何异常 Console.WriteLine("发生错误:" + ex.Message); } } } } } }</code>
注意: 除非存儲過程存儲在非默認架構或數據庫中,否則連接字符串中不需要存儲過程的路徑。在這種情況下,您需要使用完全限定名稱指定它(例如,[DatabaseName].[SchemaName].[ProcedureName])。
This revised response maintains the image and provides a more concise and clearer explanation of executing a stored procedure from C#. The SQL code for the stored procedure is also included and functional.
以上是如何從C#程序執行SQL Server存儲的過程?的詳細內容。更多資訊請關注PHP中文網其他相關文章!