1.第一种方法就是在使用conn的情况下,使用动态参数dapper来代替SQL拼接
conn.Open();
IDaction transaction = conn.BeginTransaction();//声明事务
var p = new DynamicParameters();
string sql="INSERT INTO table(name) Values (@Name)";
//这里的@Name就是下面的参数名
p.Add("@Name", id,dbType: DbType.Int32, direction: ParameterDirection.Output);
//p.Add(参数名,值,参数类型,输入类型)
connection.Execute(sql, p,translation);//执行
transaction.Commit();//事务提交
conn.Close();//关闭数据库链接
2.第二种方法就是使用DbParameter(在有database的情况下)
2.1 需要的参数不多的时候
DbParameter NameParameter = database.CreateParameter("name",name);
//创建参数,database.CreateParameter(参数名,值)
string sql = string.Format("insert into tablename(name) values({0})",NameParameter.ParameterName );
或者
string sql = "insert into tablename(name) values(@name)"//直接带入参数名
database.ExecuteForNonQuery(sql,NameParameter);
//带入参数,执行
2.2参数较多,则用一个List
List<DbParameter> list = new Dbparameter();
DbParameter NameParameter = database.CreateParameter("name",name);
//创建参数,database.CreateParameter(参数名,值)
//编写SQL
string sql = string.Format("insert into tablename(name) values({0})",NameParameter.ParameterName );
或者
string sql = "insert into tablename(name) values(@name)"//直接带入参数名
list.Add(NameParameter);
//把需要在sql中使用的参数添加到list里,最后执行的时候直接调用List
//执行
database.ExecuteForNonQuery(sql.ToString(),list.Array());