From c46680252676fb524c8fcb9fdb77032abc36bc86 Mon Sep 17 00:00:00 2001 From: markpollack Date: Thu, 21 May 2009 22:39:17 +0000 Subject: [PATCH] SPRNET-1186 - DbParameters.GetValue returning DbParameter object instead of value --- src/Spring/Spring.Data/Data/Common/DbParameters.cs | 11 +++++++++-- .../Data/Common/DbParametersTests.cs | 8 ++++---- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/Spring/Spring.Data/Data/Common/DbParameters.cs b/src/Spring/Spring.Data/Data/Common/DbParameters.cs index a4e6ae0a..42628cb0 100644 --- a/src/Spring/Spring.Data/Data/Common/DbParameters.cs +++ b/src/Spring/Spring.Data/Data/Common/DbParameters.cs @@ -247,8 +247,15 @@ namespace Spring.Data.Common public object GetValue(string name) - { - return dataParameterCollection[dbProvider.CreateParameterNameForCollection(name)]; + { + IDataParameter parameter = dataParameterCollection[dbProvider.CreateParameterNameForCollection(name)] as IDataParameter; + if (parameter != null) + { + return parameter.Value; + } + throw new UncategorizedAdoException( + "object in IDataParameterCollection is not of the type IDataParameter, it is type [" + + dataParameterCollection[dbProvider.CreateParameterNameForCollection(name)].GetType() + "]."); } public void SetValue(string name, object parameterValue) diff --git a/test/Spring/Spring.Data.Tests/Data/Common/DbParametersTests.cs b/test/Spring/Spring.Data.Tests/Data/Common/DbParametersTests.cs index 67dac442..b2928d79 100644 --- a/test/Spring/Spring.Data.Tests/Data/Common/DbParametersTests.cs +++ b/test/Spring/Spring.Data.Tests/Data/Common/DbParametersTests.cs @@ -50,9 +50,9 @@ namespace Spring.Data.Common IDataParameter parameter = dbParameters[0]; Assert.AreEqual("p1", parameter.ParameterName); dbParameters.SetValue("p1", "foo"); - IDbDataParameter springParameter = dbParameters.GetValue("p1") as IDbDataParameter; + object springParameter = dbParameters.GetValue("p1"); Assert.IsNotNull(springParameter); - Assert.AreEqual("foo", springParameter.Value); + Assert.AreEqual("foo", springParameter); } [Test] @@ -64,9 +64,9 @@ namespace Spring.Data.Common IDataParameter parameter = dbParameters[0]; Assert.AreEqual("@p1", parameter.ParameterName); dbParameters.SetValue("p1", "foo"); - IDbDataParameter springParameter = dbParameters.GetValue("p1") as IDbDataParameter; + object springParameter = dbParameters.GetValue("p1"); Assert.IsNotNull(springParameter); - Assert.AreEqual("foo", springParameter.Value); + Assert.AreEqual("foo", springParameter); }