将sql行/列传递给方法
本文关键字:方法 sql | 更新日期: 2023-09-27 17:53:19
我有一些类建模我的表。许多表有一个sql server DateTime,这是一个c# DateTime在我的类。代码类似于下面的"图1"。因为我经常这样做,我想放入一个静态方法,我可以调用我的每个类。我的问题是我不知道如何在静态方法中表示参数(一个特定的sqldatreader列/行),如下面的"图2"。
图2public static DateTime SqlDateTimeSet(????)
{
DateTime dt;
if (?????) // // true = null in test
dt = DateTime.MinValue;
else
dt = ????;
return dt;
}
图1 User usr = new User();
int ordinal = <nullable DateTime column>;
if (dr.IsDBNull(ordinal))
usr.DisableDate = DateTime.MinValue;
else
usr.DisableDate = dr.GetDateTime(ordinal);
您应该能够将SQL日期/时间转换为这样的。net DateTime
(其中传递的值是来自DataReader
的东西,如myDataReader["myDateTime"]
:
public static DateTime SqlDateTimeSet(object drValue)
{
DateTime? dt;
dt = drValue as DateTime?;
return dt.GetValueOrDefault();
}
这是一个通用的扩展方法的例子。
public static class DataRowExtensions
{
public static T FieldOrDefault<T>(this DataRow row, string columnName)
{
return row.IsNull(columnName) ? default(T) : row.Field<T>(columnName);
}
}