KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I'm using System.Data.OracleClient which does parameter-binding by name and are verifying that CommandText and Parameters are in sync: public string CommandText { get; set; } public IEnumerable<OracleParameter> Parameters { get; set; } private void VerifyThatAllParametersAreBound() { var variableNames = Regex.Matches(CommandText, ":\\w+") .Cast<Match>().Select(m => m.Value).ToArray(); var parameteterNames = Parameters.Select(p => p.ParameterName).ToArray(); var unboundVariables = variableNames.Except(parameteterNames).ToArray(); if (unboundVariables.Length > 0) { throw new Exception("Variable in CommandText missing parameter: " + string.Join(", ", unboundVariables) + "."); } var unboundParameters = parameteterNames.Except(variableNames).ToArray(); if (unboundParameters.Length > 0) { throw new Exception("Parameter that is not used in CommandText: " + string.Join(", ", unboundParameters) + "."); } } Still one query throws ORA-01008: not all variables bound . When manually inserting the parameter-values into the offending CommandText the query runs, so the CommandText and Parameters-values should be ok. I'm using : as prefix both for variables and parameternames and it's working for the other queries. How can I pinpoint the cause of this exception?
Tags (comma-separated)
Save Edits
Cancel