public IActionResult DapperTransactionalInsert([FromBody] ProductsModel productsModel, int insert) { using (IDbConnection db = new SqlConnection(_configuration.GetConnectionString("DefaultConnection"))) { if (db.State != ConnectionState.Open) { db.Open(); } //Transaction islemi yapiyorum Products ve Order Detail tablosunu kullanarak. using (var transaction = db.BeginTransaction()) { string sql = @"INSERT INTO dbo.products (ProductName, ProductID) Values (@ProductName, @ProductID);"; var result = db.Execute(sql, new { ProductName = "Deneme", ProductID = 80, }, transaction); throw new ArgumentNullException(); OrdersDetailModel ordersDetailModel = new OrdersDetailModel() { OrderId = 80, ProductId = 80, Quantity = 1500 }; sql = @"Insert into [products].[Order Details] (OrderId, ProductId, Quantity) Values (@OrderId, @ProductId, @Quantity)"; result = db.Execute(sql, ordersDetailModel, transaction); transaction.Commit(); } } return(Ok()); }
/// <summary> /// 更新一条数据 /// </summary> public bool Update(OrdersDetailModel model) { StringBuilder strSql = new StringBuilder(); strSql.Append("update tb_OrdersDetail set "); strSql.Append("OrdersID=@OrdersID,"); strSql.Append("ProductId=@ProductId,"); strSql.Append("Quantity=@Quantity,"); strSql.Append("States=@States"); strSql.Append(" where DetailID=@DetailID"); SqlParameter[] parameters = { new SqlParameter("@OrdersID", SqlDbType.Int, 4), new SqlParameter("@ProductId", SqlDbType.Int, 4), new SqlParameter("@Quantity", SqlDbType.Int, 4), new SqlParameter("@States", SqlDbType.Int, 4), new SqlParameter("@DetailID", SqlDbType.Int, 4) }; parameters[0].Value = model.OrdersID; parameters[1].Value = model.ProductId; parameters[2].Value = model.Quantity; parameters[3].Value = model.States; parameters[4].Value = model.DetailID; int rows = DbHelperSQL.ExecuteSql(strSql.ToString(), parameters); if (rows > 0) { return(true); } else { return(false); } }
/// <summary> /// 得到一个对象实体 /// </summary> public OrdersDetailModel DataRowToModel(DataRow row) { OrdersDetailModel model = new OrdersDetailModel(); if (row != null) { if (row["DetailID"] != null && row["DetailID"].ToString() != "") { model.DetailID = int.Parse(row["DetailID"].ToString()); } if (row["OrdersID"] != null && row["OrdersID"].ToString() != "") { model.OrdersID = int.Parse(row["OrdersID"].ToString()); } if (row["ProductId"] != null && row["ProductId"].ToString() != "") { model.ProductId = int.Parse(row["ProductId"].ToString()); } if (row["Quantity"] != null && row["Quantity"].ToString() != "") { model.Quantity = int.Parse(row["Quantity"].ToString()); } if (row["States"] != null && row["States"].ToString() != "") { model.States = int.Parse(row["States"].ToString()); } } return(model); }
/// <summary> /// 增加一条数据 /// </summary> public int Add(OrdersDetailModel model) { StringBuilder strSql = new StringBuilder(); strSql.Append("insert into tb_OrdersDetail("); strSql.Append("OrdersID,ProductId,Quantity,States)"); strSql.Append(" values ("); strSql.Append("@OrdersID,@ProductId,@Quantity,@States)"); strSql.Append(";select @@IDENTITY"); SqlParameter[] parameters = { new SqlParameter("@OrdersID", SqlDbType.Int, 4), new SqlParameter("@ProductId", SqlDbType.Int, 4), new SqlParameter("@Quantity", SqlDbType.Int, 4), new SqlParameter("@States", SqlDbType.Int, 4) }; parameters[0].Value = model.OrdersID; parameters[1].Value = model.ProductId; parameters[2].Value = model.Quantity; parameters[3].Value = model.States; object obj = DbHelperSQL.GetSingle(strSql.ToString(), parameters); if (obj == null) { return(0); } else { return(Convert.ToInt32(obj)); } }
/// <summary> /// 得到一个对象实体 /// </summary> public OrdersDetailModel GetModel(int DetailID) { StringBuilder strSql = new StringBuilder(); strSql.Append("select top 1 DetailID,OrdersID,ProductId,Quantity,States from tb_OrdersDetail "); strSql.Append(" where DetailID=@DetailID"); SqlParameter[] parameters = { new SqlParameter("@DetailID", SqlDbType.Int, 4) }; parameters[0].Value = DetailID; OrdersDetailModel model = new OrdersDetailModel(); DataSet ds = DbHelperSQL.Query(strSql.ToString(), parameters); if (ds.Tables[0].Rows.Count > 0) { return(DataRowToModel(ds.Tables[0].Rows[0])); } else { return(null); } }