SPRNET-1200 - Default names for DataTables not generated correctly when filling DataSet from query that returns multiple result sets.

This commit is contained in:
markpollack
2010-06-09 20:22:16 +00:00
parent f85c342994
commit 30a4bf4146
3 changed files with 48 additions and 10 deletions

View File

@@ -2128,13 +2128,15 @@ namespace Spring.Data.Core
}
}
mappingCollection = new DataTableMappingCollection();
int counter = 0;
int counter = 0;
bool isFirstTable = true;
foreach (string dataSetTableName in dataSetTableNames)
{
string sourceTableName;
if (counter == 0)
if (isFirstTable)
{
sourceTableName = "Table";
sourceTableName = "Table";
isFirstTable = false;
}
else
{

View File

@@ -90,7 +90,22 @@ namespace Spring.Data
}
[Test]
public void FillDataSetWithTwoDataTables()
{
PopulateTestObjectsTable();
PopulateCreditObjectsTable();
string testObjectsql = ValidateTestObjects(4);
string creditObjectsql = ValidateCreditObjects(4);
DataSet dataSet;
dataSet = new DataSet();
adoOperations.DataSetFill(dataSet, CommandType.Text, testObjectsql + ";" + creditObjectsql, new string[] { "TestObjects", "CreditObjects" });
Assert.AreEqual(2, dataSet.Tables.Count);
Assert.AreEqual(4, dataSet.Tables["TestObjects"].Rows.Count);
Assert.AreEqual(4, dataSet.Tables["CreditObjects"].Rows.Count);
}
[Test]
public void FillDataSetNoParams()
@@ -162,6 +177,16 @@ namespace Spring.Data
}
}
private void PopulateCreditObjectsTable()
{
adoOperations.ExecuteNonQuery(CommandType.Text, "truncate table Credits");
for (int i=0; i<4; i++)
{
String sql = String.Format("insert into Credits(CreditAmount) VALUES ('{0}')", i+10);
adoOperations.ExecuteNonQuery(CommandType.Text, sql);
}
}
private string ValidateTestObjects(int count)
{
String sql = "select TestObjectNo, Age, Name from TestObjects";
@@ -172,6 +197,16 @@ namespace Spring.Data
return sql;
}
private string ValidateCreditObjects(int count)
{
String sql = "select CreditID, CreditAmount from Credits";
DataSet dataSet = new DataSet();
adoOperations.DataSetFill(dataSet, CommandType.Text, sql);
Assert.AreEqual(1, dataSet.Tables.Count);
Assert.AreEqual(count, dataSet.Tables["Table"].Rows.Count);
return sql;
}
public void DoUpdateDataSet()
@@ -223,13 +258,11 @@ namespace Spring.Data
[Test]
public void ExecuteQueryWithResultSetExtractor()
{
PopulateTestObjectsTable();
IResultSetExtractor rse = new TestObjectExtractor();
String sql = "select TestObjectNo, Age, Name from TestObjects";
IList testObjectList = (IList)adoOperations.QueryWithResultSetExtractor(CommandType.Text, sql, rse);
Assert.AreEqual(1, testObjectList.Count);
Assert.AreEqual(4, testObjectList.Count);
}

View File

@@ -3,9 +3,12 @@
xmlns:db="http://www.springframework.net/database">
<db:provider id="DbProvider"
connectionString="Data Source=MARKT60\SQL2005;Initial Catalog=Spring;Persist Security Info=True;User ID=springqa;Password=springqa"/>
provider="SqlServer-2.0"
connectionString="Data Source=SPRINGQA;Database=Spring;Trusted_Connection=False;User ID=springqa;Password=springqa"/>
<!-- connectionString="Data Source=MARKT60\SQL2005;Initial Catalog=Spring;Persist Security Info=True;User ID=springqa;Password=springqa"/> -->
<object id="adoTemplate" type="Spring.Data.Core.AdoTemplate, Spring.Data">