描述
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
下載:示例代碼下載