Oracle PreparedStatement / Ошибка параметра - PullRequest
0 голосов
/ 27 сентября 2018

Используя этот код, я могу получить данные из базы данных Oracle.

 public static ArrayList CheckIfPrinterExists()
        {
            string printerName = @"PRINTER1234";
            ArrayList colValues = new ArrayList();
            try
            {

                string constr = @"DATA SOURCE=someSource;PERSIST SECURITY INFO=True;USER ID=root;password=root";
                OracleConnection con = new OracleConnection(constr);
                con.Open();
                OracleCommand cmd = con.CreateCommand();
                cmd.CommandText = @"select * from print_spooler where spoolername = 'Printer1234'";
                OracleDataReader reader = cmd.ExecuteReader();
                while (reader.Read())
                {
                    colValues.Add(reader["id"] + ";" + reader["id2"] + ";" + reader["id3"]);
                }
                con.Dispose();
                reader.Dispose();
                return colValues;
            }
            catch (Exception ex)
            {
                Console.WriteLine("Error : {0}", ex);
                return null;
            }
        }

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

public static ArrayList CheckIfPrinterExists()
        {
            string printerName = @"printer1234";
            ArrayList colValues = new ArrayList();
            try
            {

                string constr = @"DATA SOURCE=someSource;PERSIST SECURITY INFO=True;USER ID=root;password=root";
                OracleConnection con = new OracleConnection(constr);
                con.Open();
                OracleCommand cmd = con.CreateCommand();
                cmd.CommandText = @"select * from print_spooler where spoolername = @ParamPrinterName";
                cmd.Parameters.Add(new OracleParameter("@ParamPrinterName", printerName));
                OracleDataReader reader = cmd.ExecuteReader();
                while (reader.Read())
                {
                    colValues.Add(reader["id"] + ";" + reader["id2"] + ";" + reader["id3"]);
                }
                con.Dispose();
                reader.Dispose();
                return colValues;
            }
            catch (Exception ex)
            {
                Console.WriteLine("Error : {0}", ex);
                return null;
            }
        }

Вот лучшее представление об изменениях (если я прав, 2-й неработающий optin лучше использовать из-за внедрения SQL).

enter image description here

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