تحويل system.types إلى smo.Dattypes
سؤال
لدي مشروع يقوم بإنشاء جدول من DataTable إلى جدول SQL عبر SMO.
لا تتحول البيانات إلى الأعمدة حاليا من system.type إلى smo.datatype. يمكنني القيام بذلك عبر بيان الحالة لكني كنت آمل في حل نظيف. ربما شيء ينطوي على typedescriptor.getconverter (الهدف المستهدف).
يعمل هذا بين system.types و sql.dattypes ولكن لا يمكنني الحصول عليه للتحويل إلى smo.dattypes.
أي اقتراحات أو نصائح؟
تيا
المحلول
انتهى بي الأمر باستخدام بيان الحالة للتعامل مع التحويل. يعمل موافق.
نصائح أخرى
فعلت بهذه الطريقة أيضا. لم أعمل كل الحالات، وأضيف بعد ذلك عندما أحتاج إليه. ميثود بلدي ليست نظيفة جدا ...
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;
}
لا تنتمي إلى StackOverflow