我使用以下情况:
cmd.CommandText = "insert into city (id, code, name, uf) values ??(@ id, @ code, @ name, @ uf);"
我想知道在提供给参数
的格式字符串之后会给我带来什么情况:
insert into city (id, code, name, uf) values ??(5, 5, 'BIG COUNTRY', 'MS');
- 例如
参数输入后我得到这个“字符串”已经输入并移动到字符串??
我的想法是创建一个日志,所以需要获取已经填写的参数来生成系统日志!
答案 0 :(得分:1)
查询将发送到具有@
参数占位符的数据库。参数将单独发送到查询...即客户端不汇编已完成的SQL语句。
答案 1 :(得分:1)
如果您使用的是SQL Server,是否考虑过使用SQL Server Profiler?如果您不使用SQL Server,其他RBDMS系统应该有类似的工具......
将这种类型的日志记录添加到您的应用程序中可能会更省力,并且它还可以保证您看到实际发送到您的数据库的内容,并且您的日志记录代码没有意外地误解和错误记录查询。
如果您厌恶分析,如果我们讨论的是无法处理分析开销的生产数据库,那么这是合理的,您可以使用类似于以下内容的方式组装日志: / p>
var query = cmd.CommandText;
foreach (var p in cmd.Parameters)
{
query = query.Replace(p.ParameterName, p.Value.ToString());
}