将System.types转换为SMO.DataTypes
我有一个项目,通过SMO创建一个从DataTable到SQL表的表 列的数据类型当前未从System.Type转换为SMO.DataType。 我可以通过案例陈述来做到这一点,但我希望有一个更干净的解决方案。可能是涉及TypeDescriptor.GetConverter(targetDataType)的内容 这在System.types和SQL.DataTypes之间工作,但我无法将其转换为SMO.DataTypes 有什么建议或提示吗将System.types转换为SMO.DataTypes,types,smo,Types,Smo,我有一个项目,通过SMO创建一个从DataTable到SQL表的表 列的数据类型当前未从System.Type转换为SMO.DataType。 我可以通过案例陈述来做到这一点,但我希望有一个更干净的解决方案。可能是涉及TypeDescriptor.GetConverter(targetDataType)的内容 这在System.types和SQL.DataTypes之间工作,但我无法将其转换为SMO.DataTypes 有什么建议或提示吗 TIA我最终使用Case语句来处理转换。工作正常。我最终
TIA我最终使用Case语句来处理转换。工作正常。我最终使用Case语句来处理转换。工作正常。我也是这样做的。 我没有治疗所有的病例,我在需要时补充说。 我的方法不是很干净
public static SqlDbType MappingToSQLType(String CLRTypeName)
{
string[] t = CLRTypeName.Split('.');
for (int i = 0; i <= 31; i++)// there is 31 sqldatatypes
{
if (t[1].Equals("Int64") &&
((SqlDbType)i).ToString().ToLower().Equals("bigint"))
return ((SqlDbType)i);
else if (t[1].Equals("Int32") &&
((SqlDbType)i).ToString().ToLower().Equals("int"))
return ((SqlDbType)i);
else if (t[1].Equals("Int16") &&
((SqlDbType)i).ToString().ToLower().Equals("smallint"))
return ((SqlDbType)i);
else if (t[1].Equals("Boolean") &&
((SqlDbType)i).ToString().ToLower().Equals("bit"))
return ((SqlDbType)i);
else if (t[1].Equals("Double") &&
((SqlDbType)i).ToString().ToLower().Equals("float"))
return ((SqlDbType)i);
else if (t[1].Equals("Single") &&
((SqlDbType)i).ToString().ToLower().Equals("real"))
return ((SqlDbType)i);
else if (((SqlDbType)i).ToString().ToLower().Equals(t[1].ToLower()))
return ((SqlDbType)i);
}
return SqlDbType.NVarChar;
}
public静态SqlDbType映射到sqltype(字符串CLRTypeName)
{
字符串[]t=CLRTypeName.Split('.');
对于(inti=0;i我也是这样做的。
我没有治疗所有的病例,我在需要时补充说。
我的方法不是很干净
public static SqlDbType MappingToSQLType(String CLRTypeName)
{
string[] t = CLRTypeName.Split('.');
for (int i = 0; i <= 31; i++)// there is 31 sqldatatypes
{
if (t[1].Equals("Int64") &&
((SqlDbType)i).ToString().ToLower().Equals("bigint"))
return ((SqlDbType)i);
else if (t[1].Equals("Int32") &&
((SqlDbType)i).ToString().ToLower().Equals("int"))
return ((SqlDbType)i);
else if (t[1].Equals("Int16") &&
((SqlDbType)i).ToString().ToLower().Equals("smallint"))
return ((SqlDbType)i);
else if (t[1].Equals("Boolean") &&
((SqlDbType)i).ToString().ToLower().Equals("bit"))
return ((SqlDbType)i);
else if (t[1].Equals("Double") &&
((SqlDbType)i).ToString().ToLower().Equals("float"))
return ((SqlDbType)i);
else if (t[1].Equals("Single") &&
((SqlDbType)i).ToString().ToLower().Equals("real"))
return ((SqlDbType)i);
else if (((SqlDbType)i).ToString().ToLower().Equals(t[1].ToLower()))
return ((SqlDbType)i);
}
return SqlDbType.NVarChar;
}
public静态SqlDbType映射到sqltype(字符串CLRTypeName)
{
字符串[]t=CLRTypeName.Split('.');
对于(int i=0;我的问题是关于从System.Type
转换到SMO.DataType
notSqlDbType
问题是关于从System.Type
转换到SMO.DataType
notSqlDbType