首页 > 后端开发 > 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
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板