Author: gbayon
Date: Tue Feb 28 11:05:11 2006
New Revision: 381745

URL: http://svn.apache.org/viewcvs?rev=381745&view=rev
Log:
- Fixed IBATISNET-88

Modified:
    
ibatis/trunk/cs/mapper/IBatisNet.DataMapper/TypeHandlers/TimeSpanTypeHandler.cs

Modified: 
ibatis/trunk/cs/mapper/IBatisNet.DataMapper/TypeHandlers/TimeSpanTypeHandler.cs
URL: 
http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.DataMapper/TypeHandlers/TimeSpanTypeHandler.cs?rev=381745&r1=381744&r2=381745&view=diff
==============================================================================
--- 
ibatis/trunk/cs/mapper/IBatisNet.DataMapper/TypeHandlers/TimeSpanTypeHandler.cs 
(original)
+++ 
ibatis/trunk/cs/mapper/IBatisNet.DataMapper/TypeHandlers/TimeSpanTypeHandler.cs 
Tue Feb 28 11:05:11 2006
@@ -41,6 +41,17 @@
        internal class TimeSpanTypeHandler : BaseTypeHandler
        {
 
+        /// <summary>
+        ///  Sets a parameter on a IDbCommand
+        /// </summary>
+        /// <param name="dataParameter">the parameter</param>
+        /// <param name="parameterValue">the parameter value</param>
+        /// <param name="dbType">the dbType of the parameter</param>
+        public override void SetParameter(IDataParameter dataParameter, object 
parameterValue, string dbType)
+        {
+            dataParameter.Value = ((TimeSpan)parameterValue).Ticks;
+        }
+
                /// <summary>
                /// 
                /// </summary>
@@ -49,8 +60,16 @@
                /// <returns></returns>
                public override object GetValueByName(ResultProperty mapping, 
IDataReader dataReader)
                {
-                       //return 
GetValueByIndex(dataReader.GetOrdinal(columnName), dataReader);
-                       return "ToDo";
+            int index = dataReader.GetOrdinal(mapping.ColumnName);
+
+            if (dataReader.IsDBNull(index) == true)
+            {
+                return System.DBNull.Value;
+            }
+            else
+            {
+                return new TimeSpan( 
Convert.ToInt64(dataReader.GetValue(index)) );
+            }
                }
 
                /// <summary>
@@ -61,10 +80,14 @@
                /// <returns></returns>
                public override object GetValueByIndex(ResultProperty mapping, 
IDataReader dataReader) 
                {
-                       // dépendra du dbType spécifié ds le ResultProperty 
(idem pour le StringTypeHandler
-                       // des fois en DateTime, d'autre fois en TimeSpan
-                       return "To do";
-                               //dataReader.GetTimeSpan(columnIndex);
+            if (dataReader.IsDBNull(mapping.ColumnIndex) == true)
+            {
+                return System.DBNull.Value;
+            }
+            else
+            {
+                return new TimeSpan( 
Convert.ToInt64(dataReader.GetValue(mapping.ColumnIndex)) );
+            }
                }
 
                public override object GetDataBaseValue(object outputValue, 
Type parameterType )


Reply via email to