从DLL执行SQL Server存储过程

本文关键字:Server 存储过程 SQL 执行 DLL | 更新日期: 2023-09-27 18:28:06

我想使用C#执行SQL Server存储过程。这是我当前的代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DBCon;
using System.Data;
using System.Data.SqlClient;
    public class LoginDAl
    {
        public static DataSet  login_vald()
        {
            DBConnect myConnection = new DBConnect();
            SqlCommand comm = new SqlCommand("ph.validate_app_user", myConnection.connection);
            comm.CommandType = CommandType.StoredProcedure;
            DataSet ds = new DataSet();
            SqlDataAdapter da = new SqlDataAdapter();
        }
}

这是一个练习的模拟项目。DLL是DAL的标准吗?这是一个桌面应用程序。这是DAL的一部分。

错误为

login_vald()-并非所有代码路径都返回值

从DLL执行SQL Server存储过程

错误非常明显:

login_vald()-并非所有代码路径都返回值

意味着您的函数缺少一个return语句,该语句的对象类型为DataSet,类似于:

public static DataSet  login_vald()
        {
            DBConnect myConnection = new DBConnect();
            SqlCommand comm = new SqlCommand("ph.validate_app_user", myConnection.connection);
            comm.CommandType = CommandType.StoredProcedure;
            DataSet ds = new DataSet();
            SqlDataAdapter da = new SqlDataAdapter();
            return ds;   //this is missing
        }
  1. 执行过程(类似于da.Fill(ds)
  2. 返回数据集(返回ds;)

您必须查找execute procedure命令示例

您需要一个返回语句,还需要用记录填充数据集

        public static DataSet  login_vald()
        {
            DBConnect myConnection = new DBConnect();
            SqlCommand comm = new SqlCommand("ph.validate_app_user", myConnection.connection);
            comm.CommandType = CommandType.StoredProcedure;
            DataSet ds = new DataSet();
            SqlDataAdapter da = new SqlDataAdapter(ds); //missing argument from SqlDataAdapter this will fill the ds
           return ds; //return filled DataSet
        }