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); }