c# – 逃脱sql字符串的简单方法?

在我的代码中我到处都有

command.Parameters.Add("@name",DbType.String).Value = name;

有没有更简单的方法?我很乐意做类似的事情

command.command.CommandTextFn("insert into tbl(key,val) values(?,?);",key,value);

并确定键/值是字符串还是int.我不介意我是否必须使用{0}而不是?

解决方法

使用 AddWithValue方法

command.Parameters.AddWithValue( "@name",name );

您可以将此与扩展方法结合使用:

public static sqlCommand CreateCommand(this sqlConnection connection,string command,string[] names,object[] values )
{
     if (names.Length != values.Length)
     {
          throw new ArgumentException("name/value mismatch");
     }

     var cmd = connection.CreateCommand();
     cmd.CommandText = command;
     for (int i = 0; i < names.Length; ++i )
     {
         cmd.Parameters.AddWithValue(names[i],values[i]);
     }

     return cmd;
}

用作

var command = connection.CreateCommand( "insert into tbl (key,val) values(@key,@val)",new string[] { "@key","@val" },new object[] { key,val } );

相关文章

目录简介使用JS互操作使用ClipLazor库创建项目使用方法简单测...
目录简介快速入门安装 NuGet 包实体类User数据库类DbFactory...
本文实现一个简单的配置类,原理比较简单,适用于一些小型项...
C#中Description特性主要用于枚举和属性,方法比较简单,记录...
[TOC] # 原理简介 本文参考[C#/WPF/WinForm/程序实现软件开机...
目录简介获取 HTML 文档解析 HTML 文档测试补充:使用 CSS 选...