2012-03-18 7 views
0

Я хочу выполнить хранимую процедуру SQL Server с помощью C#. Это мой текущий код:Выполнение хранимой процедуры SQL Server из DLL

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() - не все пути кода возвращают значение

ответ

2

Ошибки вполне ясно:

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 
     } 
+0

Am i на правой дорожке для создания DAL – deception1

+0

В общем, это всегда хорошая идея иметь уровень доступа к данным. Если вы не знаете, как вызвать хранимые процедуры, посмотрите [здесь] (http://www.csharp-station.com/Tutorial/AdoDotNet). Для чего-нибудь еще, пожалуйста, более конкретно о том, что вам непонятно. –

0
  1. выполнить процедуру (что-то вроде da.Fill (DS);)
  2. данные по возврату (возвращение ds;)

Вы должны искать для выполнения команды процедуры example

+0

и кажется совершенно невероятным, что 'хранимая процедура validate_app_user' может сделать что-либо без какого-либо параметров (например. имя пользователя, пароль ???) – Steve

+0

Я буду помещать их в мой уровень BO – deception1

+0

. Какова цель метода login_vald? Проверить, зарегистрирован ли пользователь/авторизован? – Steve

0

Вы должны иметь обратный заявление, вам также необходимо заполнить 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(ds); //missing argument from SqlDataAdapter this will fill the ds 

      return ds; //return filled DataSet 
     } 
Смежные вопросы