Получение ошибки при вызове публичного класса - PullRequest
0 голосов
/ 14 марта 2012

Вот ошибка:

Ссылка на объект требуется для нестатического поля, метода или свойство 'ArchiCapture.Models.dbConnection.runSproc (string [], строка [], строка) '

Появляется при вызове dt = dbConnection.runSproc (paramName, paramValue, "pr_select_employee_by_id");

Я пытаюсь разработать класс, который будет называться SPROCs. Вот мой класс.

namespace ArchiCapture.Models
{
    public class dbConnection
    {

    public DataTable runSproc(string[] paramName, string[] paramValue, string sproc)
    {
            SqlConnection conn = null;
            DataTable dt = new DataTable();
            SqlDataReader reader = null;

            try
            {
                string connStr = ConfigurationManager.ConnectionStrings["AC2012"].ConnectionString;
                using (conn = new SqlConnection(connStr))
                {

                    SqlCommand cmd = new SqlCommand(sproc, conn);
                    cmd.CommandType = CommandType.StoredProcedure;

                    for (int x = 0; x < paramName.Count(); x++)
                    {
                        cmd.Parameters.Add(new SqlParameter(paramName[x], paramValue[x]));
                    }
                    conn.Open();

                    reader = cmd.ExecuteReader();
                    dt.Load(reader);

                    return dt;
                }
            }
            catch (SqlException e)
            {
                throw (e);
            }
            catch (Exception ex)
            {
                throw (ex);
            }
        finally
        {
            if (conn != null)
            {
                conn.Close();
            }
            if (reader != null)
            {
                reader.Close();
            }
        } 
    }
}
}

А вот как я это называю ..

                    DataTable dt = new DataTable();
                string[] paramName = new string[1] { "@employee_id" };
                string[] paramValue = new string[1] { searchEngine.Value };


                dt = dbConnection.runSproc(paramName, paramValue, "pr_select_employee_by_id");

1 Ответ

4 голосов
/ 14 марта 2012

Требуется метод static:

public static DataTable runSproc(string[] paramName, string[] paramValue, string sproc)

Или, как говорится в сообщении об ошибке, перед вызовом метода экземпляра необходимо создать новый экземпляр вашего класса:

dbConnection conn = new dbConnection();
dt = conn.runSproc(paramName, paramValue, "pr_select_employee_by_id");

Кроме того, обычно имена классов являются PascalCased.Рассмотрим DbConnection вместо dbConnection.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...