描述
Execute
是一种可被任何IDbConnection类型的对象调用的扩展方法。它可以执行一次或多次命令, 并返回受影响的行数。此方法通常用于执行
参数
参数名 | 描述 |
---|---|
sql | 执行的sql命令脚本 |
param | 执行命令的参数,默认为null |
transaction | 事务参数,默认为null |
commandTimeout | 命令超时时长(秒),默认为null |
commandType | 命令类型,默认为null |
存储过程
单次执行
public void ExecuteSingleSpInsertTest()
{
var sp = "Invoice_Insert";
var singleParam = new { Kind = InvoiceKind.WebInvoice, Code = "Single_Sp_Insert_1" };
var affectedRows = Rep.Execute(sp, singleParam, System.Data.CommandType.StoredProcedure);
Assert.True(affectedRows > 0);
}
多次执行
public void ExecuteManySpInsertTest()
{
var sp = "Invoice_Insert";
var param = new[]
{
new { Kind = InvoiceKind.WebInvoice, Code = "Many_Sp_Insert_1" },
new { Kind = InvoiceKind.StoreInvoice, Code = "Many_Sp_Insert_2" },
new { Kind = InvoiceKind.StoreInvoice, Code = "Many_Sp_Insert_3" },
};
var affectedRows = Rep.Execute(sp, param, System.Data.CommandType.StoredProcedure);
Assert.True(affectedRows > 0);
}
插入
插入一条
public void ExecuteSingleSqlInsertTest()
{
string sql = "INSERT INTO Invoice (Code) Values (@Code);";
var singleParam = new { Kind = InvoiceKind.WebInvoice, Code = "Single_Sql_Insert_1" };
var affectedRows = Rep.Execute(sql, singleParam);
Assert.True(affectedRows > 0);
}
插入多条
public void ExecuteManySqlInsertTest()
{
string sql = "INSERT INTO Invoice (Code) Values (@Code);";
var param = new[]
{
new { Kind = InvoiceKind.WebInvoice, Code = "Many_Sql_Insert_1" },
new { Kind = InvoiceKind.StoreInvoice, Code = "Many_Sql_Insert_2" },
new { Kind = InvoiceKind.StoreInvoice, Code = "Many_Sql_Insert_3" },
};
var affectedRows = Rep.Execute(sql, param);
Assert.True(affectedRows > 0);
}
更新
更新一条
public void ExecuteSingleSqlUpdateTest()
{
string sql = "UPDATE Invoice SET Code = @Code WHERE InvoiceID = @InvoiceID;";
var singleParam = new { InvoiceID = 1, Code = "Single_Sql_Update_1" };
var affectedRows = Rep.Execute(sql, singleParam);
Assert.True(affectedRows > 0);
}
更新多条
public void ExecuteManySqlUpdateTest()
{
string sql = "UPDATE Invoice SET Code = @Code WHERE InvoiceID = @InvoiceID;";
var param = new[]
{
new { InvoiceID =1, Code = "Many_Sql_Update_1" },
new { InvoiceID =2, Code = "Many_Sql_Update_2" },
new { InvoiceID =3, Code = "Many_Sql_Update_3" },
};
var affectedRows = Rep.Execute(sql, param);
Assert.True(affectedRows > 0);
}
删除
删除一条
public void ExecuteSingleSqlDeleteTest()
{
string sql = "DELETE FROM Invoice WHERE InvoiceID = @InvoiceID;";
var singleParam = new { InvoiceID = 1 };
var affectedRows = Rep.Execute(sql, singleParam);
Assert.True(affectedRows > 0);
}
删除多条
public void ExecuteManySqlDeleteTest()
{
string sql = "DELETE FROM Invoice WHERE InvoiceID = @InvoiceID;";
var param = new[]
{
new { InvoiceID =1 },
new { InvoiceID =2 },
new { InvoiceID =3 },
};
var affectedRows = Rep.Execute(sql, param);
Assert.True(affectedRows > 0);
}
参考:Dapper Tutorial
下载:示例代码下载