Ich habe diese Funktion eine parametrisierte SELECT-Abfrage ausführen:Ein Ausdruck von Nicht-Typ boolean in einem Kontext angegeben, wo eine Bedingung zu erwarten ist, paramerization DbCommand in C#
public string LookUp(string sColuna, string sTabela, string sWhere)
{
string[] Parameters = { "@column", "@table", "@where" };
var comando = @"SELECT @column FROM @table WHERE @where";
var cmd = this.OraConnection.CreateCommand();
cmd.CommandText = comando;
cmd.Parameters.AddRange(Parameters.Select(item => { var param = cmd.CreateParameter(); param.ParameterName = item; param.Value = 1; return para; }).ToArray());
cmd.Parameters[0].Value = sColuna;
cmd.Parameters[1].Value = sTabela;
cmd.Parameters[2].Value = sWhere;
DbDataReader Reader = cmd.ExecuteReader();
return Reader.GetString(0);
}
, wenn es die DbDataReader Reader = cmd.ExecuteReader();
erreicht er wirft mir eine Ausnahme sagen: Zusätzliche Informationen: Ein Ausdruck eines nicht-booleschen Typs, der in einem Kontext angegeben ist, in dem eine Bedingung erwartet wird, in der Nähe von "@where". Kann man keinen Parameter in der where-Klausel haben?
Jetzt habe ich geändert, es zu:
var cmd = this.OraConnection.CreateCommand();
cmd.CommandText = string.Format("SELECT {} FROM {} WHERE", sColuna, sTabela, sWhere);
DbDataReader Reader = cmd.ExecuteReader();
return Reader.GetString(0);
A Where-Klausel in einen Booleschen Ausdruck auswerten müssen ... z Wo xyz = @wo – Kevin
Kann ich sowas nicht haben wie WHERE @etwas = @etwas? Ich gebe das an die sWhere var: UserName = 'Joao' – LikeIfYouCaredAboutMyName
ist '@ where' enthält Zeichenfolge wie' WHERE val = val' ?? –