| Oracle FAQ | Your Portal to the Oracle Knowledge Grid | |
Home -> Community -> Usenet -> c.d.o.misc -> GRR - can't get .net oracle data provider parameter sql statement to work - please help?
Hi,
I the parameters in the commandstring never get substituted for. So I end up sending an invalid sql statement over to the oracle db. Apparently I don't understand how to parametrize sql statements. Sigh.
I've tried this both with and without the ":" in the ParameterNames - same not-substituting problem.
I'm certain I'm missing something stupid & simple - anyone want to point it out to me? I'd prefer not to go back to the commandString = "blahblahblah" + variable; bad way of doing things...
thanks for any assistance,
cdj
public static void DeleteTestRates(DateTime start, DateTime end)
{
ParentFormStatusBar.Text = "Deleting rates...";
//string oracleStart = start.ToString("dd-MMM-yyyy");
//string oracleEnd = end.ToString("dd-MMM-yyyy");
string strConn = "user id=cmr_app;password=cmr#app01;data
source=cmr_uat";
OracleConnection dc_UAT = new OracleConnection(strConn);
string oracleTable = "cmr_admin.tbl_market_intrates_test";
OracleCommand oc = new OracleCommand();
OracleParameter tableParam = new OracleParameter();
tableParam.ParameterName = ":oracleTable";
tableParam.Value = oracleTable;
tableParam.OracleDbType = OracleDbType.Varchar2;
tableParam.Direction = ParameterDirection.Input;
oc.Parameters.Add(tableParam);
OracleParameter startParam = new OracleParameter();
startParam.ParameterName = ":oracleStart";
startParam.Value = start;
startParam.OracleDbType = OracleDbType.Date;
startParam.Direction = ParameterDirection.Input;
oc.Parameters.Add(startParam);
OracleParameter endParam = new OracleParameter();
endParam.ParameterName = ":oracleEnd";
endParam.Value = end;
endParam.OracleDbType = OracleDbType.Date;
endParam.Direction = ParameterDirection.Input;
oc.Parameters.Add(endParam);
oc.CommandText = "delete from :oracleTable where as_of_date between
:oracleStart and :oracleEnd";
oc.Connection = dc_UAT;
//MessageBox.Show(tableParam.Value.ToString()+ "\n" +
oc.CommandText+"\n" + "Params: " + oc.Parameters.Count);
int rowsAffected;
try
{
dc_UAT.Open();
rowsAffected = oc.ExecuteNonQuery();
dc_UAT.Close();
ParentFormStatusBar.Text = rowsAffected.ToString() + " records
deleted.";
}
catch(Exception ex)
{
ParentFormStatusBar.Text = "Delete error: " + ex.Message;
}
}
Received on Wed Nov 01 2006 - 19:52:24 CST
![]() |
![]() |