2015-04-03 2 views
-1

Я хотел бы отображать данные в своих текстовых полях, и я столкнулся с ошибкой в ​​своем DAL. У меня есть хранимая процедура, но я не могу вернуть свои данные в возвращаемое значение. Я хотел бы использовать мой BLL для возврата DataTable. Пожалуйста, помогите?ExecuteReader: сообщение об ошибке подключения

DAL

public static string GetTicket(collection b) 
     { 
      try 
      { 

       string returnValue = string.Empty; 
       DB = Connect(); 
       DBCommand = connection.Procedure("getTicket"); 
       DB.AddInParameter(DBCommand, "@SupportRef", DbType.String, b.SupportRef1); 

       var myReader = DBCommand.ExecuteReader(); 
       while (myReader.Read()) 
       { 
        returnValue = myReader.GetString(0); 
       } 

       return returnValue; 
      } 

      catch (Exception ex) 
      { 
       throw ex; 
      } 

     } 

Я получаю следующее сообщение об ошибке:

ExecuteReader: Connection property has not been initialized. 

Я использую класс соединений, который выглядит следующим образом:

public class connection 
{ 
    const string StrConnection = "TicketHelperConnectionString"; 
    internal static Database DB; 
    public static DbCommand DBCommand; 
    public static Database Connect() 
    { 

     try 
     { 
      DB = DatabaseFactory.CreateDatabase(StrConnection); 
      return DB; 
     } 
     catch (Exception ex) 
     { 
      throw (ex); 
     } 
    } 
    public static DbCommand Procedure(string procedure) 
    { 

     try 
     { 
      DBCommand = DB.GetStoredProcCommand(procedure); 
      return DBCommand; 
     } 
     catch (Exception ex) 
     { 
      throw (ex);    
     } 
    } 
} 

ответ

0

Похоже свойства подключения DBCommand не установлен, поверните команду из метода Procedure, вы должны установить его свойство соединения:

DBCommand = DB.GetStoredProcCommand(procedure); 

// DBCommand.Connection = ... 

return DBCommand;