瀏覽代碼

* SqlParameter.cs (ConvertToFrameworkType): Only wrap FormatException
on 2.0 profile.

svn path=/trunk/mcs/; revision=139241

Gert Driesen 16 年之前
父節點
當前提交
fd94203d2e

+ 5 - 0
mcs/class/System.Data/System.Data.SqlClient/ChangeLog

@@ -1,3 +1,8 @@
+2009-08-01  Gert Driesen  <[email protected]>
+
+	* SqlParameter.cs (ConvertToFrameworkType): Only wrap FormatException
+	on 2.0 profile.
+
 2009-07-30  Gert Driesen  <[email protected]>
 
 	* SqlParameter.cs: Modified ConvertToFrameworkType to only perform

+ 17 - 7
mcs/class/System.Data/System.Data.SqlClient/SqlParameter.cs

@@ -1164,22 +1164,32 @@ namespace System.Data.SqlClient {
 			if (valueType == frameworkType)
 				return value;
 
+#if NET_2_0
 			object sqlvalue = null;
 
 			try {
-				sqlvalue = Convert.ChangeType (value, frameworkType);
-				switch (sqlDbType) {
-				case SqlDbType.Money:
-				case SqlDbType.SmallMoney:
-					sqlvalue = Decimal.Round ((decimal) sqlvalue, 4);
-					break;
-				}
+				sqlvalue = ConvertToFrameworkType (value, frameworkType);
 			} catch (FormatException ex) {
 				throw new FormatException (string.Format (CultureInfo.InvariantCulture,
 					"Parameter value could not be converted from {0} to {1}.",
 					valueType.Name, frameworkType.Name), ex);
 			}
 
+			return sqlvalue;
+#else
+			return ConvertToFrameworkType (value, frameworkType);
+#endif
+		}
+
+		object ConvertToFrameworkType (object value, Type frameworkType)
+		{
+			object sqlvalue = Convert.ChangeType (value, frameworkType);
+			switch (sqlDbType) {
+			case SqlDbType.Money:
+			case SqlDbType.SmallMoney:
+				sqlvalue = Decimal.Round ((decimal) sqlvalue, 4);
+				break;
+			}
 			return sqlvalue;
 		}