コード例 #1
0
        private object GetDefaultValue(DataRow row, MsAccessColumnSchema column, TableSchema table)
        {
            object defaultValue       = null;
            string defaultValueString = null;

            if (row.IsNull(ColumnsSchemaNames.ColumnDefault))
            {
                defaultValue = column.AllowNull ? DBNull.Value : _defaultValueMapping[column.OleDbType];
            }
            else
            {
                defaultValueString = GetDefaultValueString(row.Field <string>(ColumnsSchemaNames.ColumnDefault));
                defaultValue       = GetDefaultValueFromString(defaultValueString, column.OleDbType);
            }

            MsAccessParseDefaultValueEventArgs e = new MsAccessParseDefaultValueEventArgs(
                table.Name, column.Name, column.OleDbType, defaultValueString, defaultValue);

            OnParseDefaultValue(e);
            if (e.Handled)
            {
                defaultValue = e.DefaultValue;
            }

            if ((defaultValue == null) || (defaultValue == DBNull.Value))
            {
                return(column.AllowNull ? DBNull.Value : _defaultValueMapping[column.OleDbType]);
            }
            return(defaultValue);
        }
コード例 #2
0
 /// <summary>
 /// Raises the <see cref="ParseDefaultValue"/> event with arguments <paramref name="e"/>.
 /// </summary>
 /// <param name="e">Arguments for the event.</param>
 protected virtual void OnParseDefaultValue(MsAccessParseDefaultValueEventArgs e)
 {
     ParseDefaultValue?.Invoke(this, e);
 }