Dapper入門教程(二)——執行非查詢語句
阿新 • • 發佈:2017-08-07
文本 resp -exec factor -h spa onf fec table
描述
你可以從任意實現IDbConnection的類對象中調用Dapper的擴展方法“Execute”。它能夠執行一條命令(Command)一次或者多次,並返回受影響的行數。這個方法通常用來執行:
- Stored Procedure
- INSERT statement
- UPDATE statement
- DELETE statement
參數
下面表格中顯示了Execute方法的不同參數
名稱 | 描述 |
---|---|
sql |
要執行的sql語句文本 |
param |
command的參數 |
transaction |
事務 |
commandTimeout |
command超時時間 |
commandType |
command類型 |
示例:執行存儲過程
單次
執行存儲過程一次
string sql = "EXEC Invoice_Insert"; using (var connection = My.ConnectionFactory()) { connection.Open(); var affectedRows = connection.Execute(sql, new {Kind = InvoiceKind.WebInvoice, Code = "Single_Insert_1"}, commandType: CommandType.StoredProcedure); My.Result.Show(affectedRows); }
多次
執行存儲過程多次,數組中的每條數據都執行一次
string sql = "EXEC Invoice_Insert"; using (var connection = My.ConnectionFactory()) { connection.Open(); var affectedRows = connection.Execute(sql, new[] { new {Kind = InvoiceKind.WebInvoice, Code = "Many_Insert_1"}, new{Kind = InvoiceKind.WebInvoice, Code = "Many_Insert_2"}, new {Kind = InvoiceKind.StoreInvoice, Code = "Many_Insert_3"} }, commandType: CommandType.StoredProcedure ); My.Result.Show(affectedRows); }
示例:執行插入
單次
執行插入語句一次
string sql = "INSERT INTO Invoice (Code) Values (@Code);"; using (var connection = My.ConnectionFactory()) { connection.Open(); var affectedRows = connection.Execute(sql, new {Kind = InvoiceKind.WebInvoice, Code = "Single_Insert_1"}); My.Result.Show(affectedRows); }
多次
執行多次,數組中的每條數據都執行一次
string sql = "INSERT INTO Invoice (Code) Values (@Code);"; using (var connection = My.ConnectionFactory()) { connection.Open(); var affectedRows = connection.Execute(sql, new[] { new {Kind = InvoiceKind.WebInvoice, Code = "Many_Insert_1"}, new {Kind = InvoiceKind.WebInvoice, Code = "Many_Insert_2"}, new {Kind = InvoiceKind.StoreInvoice, Code = "Many_Insert_3"} } ); My.Result.Show(affectedRows); }
示例:執行Update
單次
執行Update語句一次
string sql = "UPDATE Invoice SET Code = @Code WHERE InvoiceID = @InvoiceID"; using (var connection = My.ConnectionFactory()) { connection.Open(); var affectedRows = connection.Execute(sql, new {InvoiceID = 1, Code = "Single_Update_1"}); My.Result.Show(affectedRows); }
多次
執行多次,數組中的每條數據都執行一次
string sql = "UPDATE Invoice SET Code = @Code WHERE InvoiceID = @InvoiceID"; using (var connection = My.ConnectionFactory()) { connection.Open(); var affectedRows = connection.Execute(sql, new[] { new {InvoiceID = 1, Code = "Many_Update_1"}, new {InvoiceID = 2, Code = "Many_Update_2"}, new {InvoiceID = 3, Code = "Many_Update_3"} }); My.Result.Show(affectedRows); }
示例:執行Delete
單次
執行Delete語句一次
string sql = "DELETE FROM Invoice WHERE InvoiceID = @InvoiceID"; using (var connection = My.ConnectionFactory()) { connection.Open(); var affectedRows = connection.Execute(sql, new {InvoiceID = 1}); My.Result.Show(affectedRows); }
多次
執行多次,數組中的每條數據都執行一次
string sql = "DELETE FROM Invoice WHERE InvoiceID = @InvoiceID"; using (var connection = My.ConnectionFactory()) { connection.Open(); var affectedRows = connection.Execute(sql, new[] { new {InvoiceID = 1}, new {InvoiceID = 2}, new {InvoiceID = 3} }); }
Dapper入門教程(二)——執行非查詢語句