首頁 > 後端開發 > C++ > 如何從C#程序執行SQL Server存儲的過程?

如何從C#程序執行SQL Server存儲的過程?

DDD
發布: 2025-01-30 17:41:16
原創
852 人瀏覽過

How to Execute a SQL Server Stored Procedure from a C# Program?

從 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# 程序執行此存儲過程,請按照以下步驟操作:

  1. 導入必要的命名空間:
<code class="language-csharp">using System;
using System.Data;
using System.Data.SqlClient;</code>
登入後複製
  1. 建立與數據庫的連接:
<code class="language-csharp">SqlConnection conn = new SqlConnection("Server=(local);DataBase=master;Integrated Security=SSPI");
conn.Open();</code>
登入後複製
  1. 創建一個新的 SqlCommand 對象並指定存儲過程名稱:
<code class="language-csharp">SqlCommand cmd = new SqlCommand("dbo.test", conn);
cmd.CommandType = CommandType.StoredProcedure;</code>
登入後複製
  1. 使用 ExecuteNonQuery 方法執行存儲過程:
<code class="language-csharp">int result = cmd.ExecuteNonQuery();</code>
登入後複製
  1. 如有必要,處理任何異常或驗證執行結果。

完整的代碼:

<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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板