ошибка при записи int = (int) cmd.ExecuteScalar ();недопустимое имя / номер переменной - PullRequest
0 голосов
/ 22 сентября 2018

Я получаю сообщение об ошибке в этой строке кода:

int records = (int)cmd.ExecuteScalar();

Ошибка:

Недопустимое имя / номер переменной

Полный код:

string strq = "select count(*) from groupmembers where group_members='" + txtgrpmem.Text + "'";
cmd = new OracleCommand(strq, Dbconn);
cmd.Parameters.AddWithValue("group_members", txtgrpmem.Text);

if (Dbconn.State == ConnectionState.Closed)
{
    Dbconn.Open();
}

int records = (int)cmd.ExecuteScalar();

if (records == 0)
{
}
else
{
}

Ответы [ 2 ]

0 голосов
/ 22 сентября 2018

Ошибка в том, что вы использовали параметр group_members со своим OracleCommand, но вы не использовали параметр в своем запросе.Проверьте здесь для Параметризованный запрос .Кроме того, проверьте по ссылке OracleCommand.ParameterCheck

string strq = "select count(1) from groupmembers where group_members=:group_members";

using (OracleConnection Dbconn = new OracleConnection(CONNECTION_STRING))
{
   if (Dbconn.State == ConnectionState.Closed)
   {
      Dbconn.Open();
   }

   using (OracleCommand cmd = new OracleCommand(strq, Dbconn))
   {
       cmd.Parameters.AddWithValue("group_members", txtgrpmem.Text);

       int records = (int)cmd.ExecuteScalar();
   } 
}

Кроме того, зачем использовать?

0 голосов
/ 22 сентября 2018

Я считаю, что ваш запрос должен включать параметр group_members, например так:

    string strq = "select count(*) from groupmembers where group_members=:group_members";

Примечание. Имя параметра имеет префикс двоеточия (:)

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