-1

我想在我的文本框中显示数据,但我在 DAL 中遇到了一个错误。我有一个存储过程,但我无法让我的数据以返回值返回。我想用 myBLL返回一个 DataTable。请问你能帮忙吗?

达尔

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);            
        }
    }
}
4

1 回答 1

0

看起来DBCommand没有设置 Connection 属性,在从方法返回命令之前,Procedure您必须设置其连接属性:

DBCommand = DB.GetStoredProcCommand(procedure);

// DBCommand.Connection = ...

return DBCommand;
于 2015-04-03T15:34:25.360 回答