Exemple #1
0
        /// <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;
            }
        }
Exemple #2
0
        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));
        }
Exemple #3
0
        public static int Insert <T>(T t)
        {
            var func = ModelsExtensions.InsertDelegate(t);
            var data = func.Invoke(t);

            return(GetConnection().Execute(data.Item1, data.Item2));
        }
Exemple #4
0
        /// <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));
            }
        }