Bug #16643 | DataAdapter.FillSchema does not set default values | ||
---|---|---|---|
Submitted: | 19 Jan 2006 17:57 | Modified: | 29 Mar 2007 15:46 |
Reporter: | vincent ugenti | Email Updates: | |
Status: | Won't fix | Impact on me: | |
Category: | Connector / NET | Severity: | S2 (Serious) |
Version: | 1.0.4 & 1.0.7 | OS: | Windows (Windows 2000 Professional) |
Assigned to: | Reggie Burnett | CPU Architecture: | Any |
[19 Jan 2006 17:57]
vincent ugenti
[22 Feb 2006 8:40]
Valeriy Kravchuk
Thank you for a problem report. Yes, the default values should be set. At least, they are set properly in the mysql command line client. Please, try to repeat with a newer version of Connector/Net, 1.0.7, and inform about the results.
[22 Feb 2006 14:20]
vincent ugenti
This was tested already on 1.0.7, with the same result. It was reported as Bug #16679 which is currently marked as "Duplicate". Shortly after I submitted the original bug report I noticed there was a newer version available and I tried it right away (unfortunately, with the same problem).
[5 Apr 2006 11:54]
Tonci Grgin
Thank you for your bug report. Verified as described by reporter: ICSharpCode.SharpZipLib C:\mysql-connector-net-1.0.7 WinXP SP2 VS 2005 CREATE TABLE `test` ( `qqq` int(10) unsigned NOT NULL default '0', `www` char(10) default NULL, PRIMARY KEY (`qqq`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; Code snippet: MySqlConnection connection = new MySqlConnection(); MySqlCommand command = new MySqlCommand(); connection.ConnectionString = "DataSource=munja;Database=test;UserID=root;Password="; connection.Open(); DataSet dataSet = new DataSet(); MySqlDataAdapter dataAdapter = new MySqlDataAdapter("select * from test limit 1", connection); MySqlCommandBuilder commandBuilder = new MySqlCommandBuilder(dataAdapter); dataAdapter.FillSchema(dataSet, System.Data.SchemaType.Source); commandBuilder.RefreshSchema(); + dataSet {System.Data.DataSet} System.Data.DataSet - dataSet.Tables["Table"].Columns {System.Data.DataColumnCollection} System.Data.DataColumnCollection - base {System.Data.DataColumnCollection} System.Data.InternalDataCollectionBase {System.Data.DataColumnCollection} Count 2 int IsReadOnly false bool IsSynchronized false bool + SyncRoot {System.Data.DataColumnCollection} object {System.Data.DataColumnCollection} + Static members + Non-Public members - Non-Public members + base {System.Data.DataColumnCollection} System.Data.InternalDataCollectionBase {System.Data.DataColumnCollection} + _list Count = 2 System.Collections.ArrayList - columnFromName Count = 2 System.Collections.Hashtable + ["www"] {www} - ["qqq"] {qqq} Key "qqq" object {string} - Value {qqq} object {System.Data.DataColumn} + base {qqq} System.ComponentModel.MarshalByValueComponent {System.Data.DataColumn} AllowDBNull false bool AutoIncrement false bool AutoIncrementSeed 0 long AutoIncrementStep 1 long Caption "qqq" string ColumnMapping Element System.Data.MappingType ColumnName "qqq" string + DataType {Name = "UInt32" FullName = "System.UInt32"} System.Type {System.RuntimeType} DateTimeMode UnspecifiedLocal System.Data.DataSetDateTime >>- DefaultValue {} object {System.DBNull} - Static members Value {} System.DBNull Expression "" string + ExtendedProperties Count = 0 System.Data.PropertyCollection MaxLength -1 int Namespace "" string Ordinal 0 int Prefix "" string ReadOnly false bool + Table {Table} System.Data.DataTable Unique true bool + Static members + Non-Public members + Raw View ColumnsImplementingIChangeTracking {Dimensions:[0]} System.Data.DataColumn[] columnsImplementingIChangeTracking {Dimensions:[0]} System.Data.DataColumn[] ColumnsImplementingIChangeTrackingCount 0 int ColumnsImplementingIRevertibleChangeTrackingCount 0 int defaultNameIndex 1 int delayedAddRangeColumns null System.Data.DataColumn[] fInClear false bool + List Count = 2 System.Collections.ArrayList nColumnsImplementingIChangeTracking 0 int nColumnsImplementingIRevertibleChangeTracking 0 int onCollectionChangedDelegate null System.ComponentModel.CollectionChangeEventHandler onCollectionChangingDelegate null System.ComponentModel.CollectionChangeEventHandler onColumnPropertyChangedDelegate null System.ComponentModel.CollectionChangeEventHandler + table {Table} System.Data.DataTable
[26 Sep 2006 20:22]
Reggie Burnett
This is a complicated task so we created a worklog to implement this in a followup release.
[29 Mar 2007 15:38]
Reggie Burnett
Don't know currently how to implement this. Plus, I don't know of any provider out there that currently does this.
[29 Mar 2007 15:46]
vincent ugenti
JET Engine for Access Database implements the Default Values correctly using the default OleDb implementation in the Microsoft.NET Framework v1.0. Have not tested on any other engines. OleDbConnection c = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=Data\\DATABASE.MDB;"); And following the steps outlined in the original submission, the default values are populated correctly.