首页 >后端开发 >C++ >如何在C#中执行SQL Server存储过程并解析'无法找到存储过程”错误?

如何在C#中执行SQL Server存储过程并解析'无法找到存储过程”错误?

DDD
DDD原创
2025-01-30 17:36:11230浏览

How Can I Execute a SQL Server Stored Procedure in C# and Resolve the

在C#中执行SQL Server存储过程

本文将指导您如何在C#程序中成功执行SQL Server存储过程,并解决常见的“找不到存储过程”错误。

假设您的C#程序尝试执行名为"dbo.test"的SQL Server数据库存储过程,却遇到异常“找不到存储过程 dbo.test”。此错误表明数据库无法识别该存储过程。

要从C#执行存储过程,请按以下步骤操作:

  1. 建立数据库连接: 使用正确的连接字符串创建一个SqlConnection对象,并打开连接。

  2. 创建SqlCommand对象: 使用存储过程名称作为CommandText属性初始化一个SqlCommand对象。将CommandType属性设置为CommandType.StoredProcedure,以指示您正在执行存储过程。

  3. 执行存储过程: 使用SqlCommand对象的ExecuteNonQuery方法执行存储过程,该方法不返回任何数据。或者,您可以使用ExecuteReader方法从存储过程中检索数据。

以下是修改后的代码示例:

<code class="language-csharp">using System;
using System.Data;
using System.Data.SqlClient;

namespace AutomationApp
{
    class Program
    {
        public void RunStoredProc()
        {
            SqlConnection conn = null;

            Console.WriteLine("\n正在执行存储过程...\n");

            try
            {
                conn = new SqlConnection("Server=(local);DataBase=master;Integrated Security=SSPI"); // 请替换为您的连接字符串
                conn.Open();
                SqlCommand cmd = new SqlCommand("dbo.test", conn); // 请确保存储过程名称正确
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.ExecuteNonQuery();
                Console.WriteLine("存储过程执行成功!");
            }
            catch (SqlException ex)
            {
                Console.WriteLine($"存储过程执行失败:{ex.Message}");
            }
            finally
            {
                if (conn != null)
                {
                    conn.Close();
                }
            }
        }
        static void Main(string[] args)
        {
            Program p = new Program();
            p.RunStoredProc();      
            Console.ReadKey();
        }
    }
}</code>

重要提示:

  • 请务必将 "Server=(local);DataBase=master;Integrated Security=SSPI" 替换为您自己的数据库连接字符串。
  • 仔细检查存储过程的名称 dbo.test 是否准确无误。大小写敏感!
  • 添加错误处理(try-catch块),以便更好地处理潜在的数据库错误。

请确保存储过程已在数据库中正确创建。 存储过程位于数据库内,通过其唯一名称标识,无需提供路径。

以上是如何在C#中执行SQL Server存储过程并解析'无法找到存储过程”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn