Как передать параметры в 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();