Bug 313664 (MONO53107)

Summary: DataSet class Merge method problem
Product: [Mono] Mono: Class Libraries Reporter: Yashasvi.N.Raykar <yraykar>
Component: Sys.DataAssignee: Veerapuram Varadhan <veerapuram.varadhan>
Status: CONFIRMED --- QA Contact: Mono Bugs <mono-bugs>
Severity: Enhancement    
Priority: P3 - Medium CC: chris
Version: unspecifiedKeywords: UI
Target Milestone: ---Flags: veerapuram.varadhan: needinfo? (chris)
Hardware: Other   
OS: Other   
Whiteboard:
Found By: --- Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---
Attachments: Test case that runs fine with trunk and verbatim 2.4

Description Thomas Wiest 2007-09-15 18:25:06 UTC


---- Reported by yraykar@hotmail.com 2004-01-20 02:03:32 MST ----

Please fill in this template when reporting a bug, unless you know what you
are doing.
Description of Problem:

When you use a dataset and try to merge table in a dataset which is empty
it does not work. The Merge method does not work on empty datasets that is
dataset does not hold the table even after the Merge method is called.

Steps to reproduce the problem:
1. Create a new instance of the dataset and try to merge a table to the
dataset. 
2. 
3. 

Actual Results:
Table does not get merged to dataset.

Expected Results:
The dataset should hold the table after the method Merge is called as in
.NET Framework.

How often does this happen? 
Always

Additional Information:


Unknown operating system unknown. Setting to default OS "Other".

Comment 1 Chris Langsenkamp 2009-05-15 18:55:28 UTC
Mono 2.4
Works with .Net normally

Similar problem:

Create MasterDataSet
Create MergeDataSet
Fill a new table and add to MergeDataSet
Call MasterDataSet.Merge(MergeDataSet,True)
--Fine up to this point

Create MergeDataSet2
Fill a new table and add to MergeDataSet2
Call MasterDataSet.Merge(MergeDataSet2,True)
--Exception occurs

System.InvalidCastException: Cannot cast from source type to destination type.
  at System.Data.DataViewManager.CollectionToListChangeEventArgs (System.ComponentModel.CollectionChangeEventArgs e) [0x00038] in C:\cygwin\tmp\monobuild\build\BUILD\mono-2.4\mcs\class\System.Data\System.Data\DataViewManager.cs:423
  at System.Data.DataViewManager.TableCollectionChanged (System.Object sender, System.ComponentModel.CollectionChangeEventArgs e) [0x00000] in C:\cygwin\tmp\monobuild\build\BUILD\mono-2.4\mcs\class\System.Data\System.Data\DataViewManager.cs:411
  at System.Data.DataTableCollection.OnCollectionChanged (System.ComponentModel.CollectionChangeEventArgs ccevent) [0x0000b] in C:\cygwin\tmp\monobuild\build\BUILD\mono-2.4\mcs\class\System.Data\System.Data\DataTableCollection.cs:265
  at System.Data.DataTableCollection.Add (System.Data.DataTable table) [0x000f2] in C:\cygwin\tmp\monobuild\build\BUILD\mono-2.4\mcs\class\System.Data\System.Data\DataTableCollection.cs:141
  at System.Data.MergeManager.AdjustSchema (System.Data.DataSet targetSet, System.Data.DataTable sourceTable, MissingSchemaAction missingSchemaAction, System.Data.DataTable& newTable) [0x0004a] in C:\cygwin\tmp\monobuild\build\BUILD\mono-2.4\mcs\class\System.Data\System.Data\MergeManager.cs:276
  at System.Data.MergeManager.Merge (System.Data.DataSet targetSet, System.Data.DataTable sourceTable, Boolean preserveChanges, MissingSchemaAction missingSchemaAction) [0x00032] in C:\cygwin\tmp\monobuild\build\BUILD\mono-2.4\mcs\class\System.Data\System.Data\MergeManager.cs:62
  at System.Data.MergeManager.Merge (System.Data.DataSet targetSet, System.Data.DataSet sourceSet, Boolean preserveChanges, MissingSchemaAction missingSchemaAction) [0x0004d] in C:\cygwin\tmp\monobuild\build\BUILD\mono-2.4\mcs\class\System.Data\System.Data\MergeManager.cs:45
  at System.Data.DataSet.Merge (System.Data.DataSet dataSet, Boolean preserveChanges, MissingSchemaAction missingSchemaAction) [0x00027] in C:\cygwin\tmp\monobuild\build\BUILD\mono-2.4\mcs\class\System.Data\System.Data\DataSet.cs:265
  at System.Data.DataSet.Merge (System.Data.DataSet dataSet, Boolean preserveChanges) [0x00000] in C:\cygwin\tmp\monobuild\build\BUILD\mono-2.4\mcs\class\System.Data\System.Data\DataSet.cs:245
Comment 2 Veerapuram Varadhan 2009-05-15 20:19:38 UTC
Created attachment 292565 [details]
Test case that runs fine with trunk and verbatim 2.4

Attached is a simple test case that works fine with both trunk and verbatim 2.4.  Try modifying it the way you use in your application in order to reproduce the bug and attach the modified test case back here.  TIA.