Как передать параметры в SQL-запрос оракула?

В последние несколько дней я не могу передать какие-либо фиксированные параметры в мой запрос SQL. Я пробую все возможные учебники, чтобы передать параметр в запрос, но ничего не работает.

Тем не менее, я видел, поместив фиксированные параметры непосредственно в запрос (метод 1), он работал отлично.

Я не вижу, чтобы в методе 2 мешало функционирование моей функции.

Когда я говорю, что это не работает, в первом методе мой читатель заполняется, а в методе 2 мой читатель пуст

Метод 1: работает (мне не нужны такие функции)

public void VerifierVersionDejaPresnte(ParseurXML.DonneesGlobales donneGlobale)
{
    OracleCommand cmd = new OracleCommand();
    cmd.Connection = conn;
    cmd.CommandText = "select nom_projet from analyses where nom_projet='demonstration'";
    cmd.CommandType = CommandType.Text;
    OracleDataReader dr = cmd.ExecuteReader();
    if (dr.Read())
        Console.WriteLine("Data already exist");
    else
        Console.WriteLine("Data doesn't exist");
}  

Способ 2: не работает (мне нужна такая функция)

public void VerifierVersionDejaPresnte(ParseurXML.DonneesGlobales donneGlobale)
{
    OracleCommand cmd = new OracleCommand();
    cmd.Connection = conn;
    cmd.CommandText = "select nom_projet from analyses where nom_projet=:test";
    cmd.Parameters.Add(new OracleParameter("test", "demonstration"));
    cmd.CommandType = CommandType.Text;
    OracleDataReader dr = cmd.ExecuteReader();
    if (dr.Read())
        Console.WriteLine("Data already exist");
    else
        Console.WriteLine("Data doesn't exist");
}

3 ответа

Решение

После многих часов исследований я наконец нашел решение:

  public Boolean VerifierVersionDejaPresnte(ParseurXML.DonneesGlobales donneGlobale)
    {
        string str = "demonstration";
        OracleCommand cmd = new OracleCommand();
        cmd.Connection = conn;
        cmd.BindByName = true;
        cmd.CommandText = "select * from analyses where nom_projet='"+str+"'";
        cmd.CommandType = CommandType.Text;
        OracleDataReader dr = cmd.ExecuteReader();
        if (dr.Read())
        {
            Console.WriteLine("Data already exist");
            return true;
        }
        Console.WriteLine("Data doesn't already exist");
        return true;
    }

Может быть, я вспомнил неправильный путь - может быть, я пытался: и он не работал и использовал: тест - но я думаю, что у вас есть проблема, проверьте код ниже.

public void VerifierVersionDejaPresnte(ParseurXML.DonneesGlobales donneGlobale)
{
    OracleCommand cmd = new OracleCommand();
    cmd.Connection = conn;
    cmd.CommandText = "select nom_projet from analyses where nom_projet=:test";
    cmd.Parameters.Add(new OracleParameter(":test", "demonstration"));
    cmd.CommandType = CommandType.Text;
    OracleDataReader dr = cmd.ExecuteReader();
    if (dr.Read())
        Console.WriteLine("Data already exist");
    else
        Console.WriteLine("Data doesn't exist");
}
String updateCmd;
        SqlCommand myCommandUpd;

updateCmd = "ОБНОВИТЬ RHRMVacationRequest SET [EmplId] = @Emplid ГДЕ RecId = @RecId";

        myCommandUpd = new SqlCommand(updateCmd, DataBase.GetConnetionToBase());
        myCommandUpd.Parameters.Add(new SqlParameter("@Emplid", SqlDbType.VarChar, 10));
        myCommandUpd.Parameters.Add(new SqlParameter("@RecId", SqlDbType.BigInt));

        myCommandUpd.Parameters["@Emplid"].Value = emplIdUpd.Text.Trim();
        myCommandUpd.Parameters["@RecId"].Value = Convert.ToInt64(RecIdUpd.Value.Trim());
        myCommandUpd.Connection.Open();
        myCommandUpd.ExecuteNonQuery();
Другие вопросы по тегам