有没有办法能知道DataTable里的字段属于数据库中的什么数据类型? 就是找出是SqlDbType的值.大概是想这样做:
========================================================
DataTable dt = ...;if (dt[0]["d"]是SqlDbType.DateTime)
{
....
}
else
if (dt[0]["d"]是....
{
}
=========================================================
========================================================
DataTable dt = ...;if (dt[0]["d"]是SqlDbType.DateTime)
{
....
}
else
if (dt[0]["d"]是....
{
}
=========================================================
应该也能满足你的要求了吧。
http://singlepine.cnblogs.com/articles/255374.html
private static System.Data.DbType GetDbType(Type type)
{
DbType result = DbType.String;
if( type.Equals(typeof(int)) || type.IsEnum)
result = DbType.Int32;
else if( type.Equals(typeof(long)))
result = DbType.Int32;
else if( type.Equals(typeof(double)) || type.Equals( typeof(Double)))
result = DbType.Decimal;
else if( type.Equals(typeof(DateTime)))
result = DbType.DateTime;
else if( type.Equals(typeof(bool)))
result = DbType.Boolean;
else if( type.Equals(typeof(string) ) )
result = DbType.String;
else if( type.Equals(typeof(decimal)))
result = DbType.Decimal;
else if( type.Equals(typeof(byte[])))
result = DbType.Binary;
else if( type.Equals(typeof(Guid)))
result = DbType.Guid;
return result;
}DataTable dt=new DataTable();
System.Data.IDataParameter iparam=new SqlParameter();
iparam.ParameterName = "@"+ dt.Columns[0].ColumnName;
iparam.DbType = GetDbType(dt.Columns[0].DataType);
iparam.Value = dt.Rows[0][k];
sqlcom.Parameters .Add(iparam);
public static System.Data.SqlDbType GetDbType(Type type)
{
System.Data.SqlDbType result = new System.Data.SqlDbType();
if( type.Equals(typeof(int)) || type.IsEnum)
result = System.Data.SqlDbType.Int;
else if( type.Equals(typeof(long)))
result = System.Data.SqlDbType.Int;
else if( type.Equals(typeof(double)) || type.Equals( typeof(Double)))
result = System.Data.SqlDbType.Decimal;
else if( type.Equals(typeof(DateTime)))
result = System.Data.SqlDbType.DateTime;
else if( type.Equals(typeof(bool)))
result = System.Data.SqlDbType.Bit;
else if( type.Equals(typeof(string) ) )
result = System.Data.SqlDbType.Char;
else if( type.Equals(typeof(decimal)))
result = System.Data.SqlDbType.Decimal;
else if( type.Equals(typeof(byte[])))
result = System.Data.SqlDbType.Binary;
else if( type.Equals(typeof(Guid)))
result = System.Data.SqlDbType.Int;
return result;
}