Skip to content

Instantly share code, notes, and snippets.

@andrijac
Last active December 16, 2015 21:49
Show Gist options
  • Save andrijac/5502629 to your computer and use it in GitHub Desktop.
Save andrijac/5502629 to your computer and use it in GitHub Desktop.
public static string GenerateDbCall(IDbCommand command)
{
switch (command.CommandType)
{
case CommandType.Text:
case CommandType.TableDirect:
return command.CommandText;
case CommandType.StoredProcedure:
StringBuilder sb = new StringBuilder();
string parameterAssignPattern = "{0} = {1}";
string parameterAssignPatternString = "{0} = '{1}'";
sb.Append(command.CommandText);
sb.Append(" ");
int count = 0;
foreach (IDataParameter s in command.Parameters)
{
string selectedPattern;
if (s.Value is string
|| s.Value is DateTime)
{
selectedPattern = parameterAssignPatternString;
}
else
{
selectedPattern = parameterAssignPattern;
}
sb.Append(string.Format(selectedPattern, s.ParameterName, s.Value == null ? "null" : s.Value.ToString()));
if (!command.Parameters.IsLastIndex(count))
{
sb.Append(", ");
}
count++;
}
return sb.ToString();
}
return string.Empty;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment