/// <summary> /// 列表结束编辑公共方法 /// </summary> /// <typeparam name="T">对应数据实体类</typeparam> /// <param name="sender">控件事件sender</param> /// <param name="e"></param> /// <param name="info">更新字段名称</param> /// <param name="code">唯一标识</param> /// <param name="value">需要更新的值</param> private void gridViewEndEdit <T>(object sender, DataGridViewCellEventArgs e, out string info, out object code, out object value) { var grid = (DataGridView)sender; var columnList = ColumnList(sender);//获取当前菜单列表中的column的信息 var row = e.RowIndex; var column = e.ColumnIndex; var cell = grid.Rows[row].Cells[column]; //单元格信息 value = cell.Value; //单元格值 var columnName = columnList.FirstOrDefault(p => p.Index == column).DataPropertyName; //根据column的索引找到被编辑的单元格的属性名称 //获取唯一标识code code = grid.Rows[row].Cells[0].Value; var dic = ModelsExtensions.GetModelDic <T>(); info = dic[columnName];//获取对应的数据库字段名称 if (cell.Tag.Equals(value) || value == null) { return; } if (code == null) { return; } if (string.IsNullOrEmpty(info)) { return; } }
public static int Update <T>(T t, IDbConnection connection, IDbTransaction transaction = null) { var func = ModelsExtensions.UpdateDelegate(t); var data = func.Invoke(t); return(connection.Execute(data.Item1, data.Item2, transaction)); }
public static int Insert <T>(T t) { var func = ModelsExtensions.InsertDelegate(t); var data = func.Invoke(t); return(GetConnection().Execute(data.Item1, data.Item2)); }
/// <summary> /// 根据表命返回单个实体 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="where"></param> /// <param name="obj"></param> /// <returns></returns> public static T FirstOrDefault <T>(string where, object obj = null) { var sql = ModelsExtensions.Select <T>() + where; using (var conn = GetConnection()) { return(conn.QueryFirst <T>(sql, obj)); } }