我想在Sql Management Studio的“导入/导出向导”的数据映射部分创建类似于sql数据类型下拉列表的下拉列表。
有没有人知道如何在不编写自定义代码的情况下执行此操作?在System.Data.Sql中是否会有一个方法调用来执行此操作?
答案 0 :(得分:1)
仅仅为了子孙后代,这并不难做到 - 在Linqpad中运行此操作并引用System.Data
:
void Main()
{
Console.WriteLine(GetSqlTypes());
}
Dictionary<string,Type> GetSqlTypes()
{
var types=new Dictionary<string,Type>();
var a = Assembly.Load("System.Data");
foreach (var sqlType in a.GetTypes().Where(t=>t.Namespace=="System.Data.SqlTypes"
&& t.Name.StartsWith("Sql")
&& !t.Name.Contains("Exception")
&& !t.Name.Contains("Schema")
&& !t.Name.Contains("Stream")))
{
types.Add(sqlType.Name,sqlType);
}
return types;
}
所以你可以将你的下拉列表绑定到GetSqlTypes:
ddlTypes.DataSource = GetSqlTypes();
ddlTypes.DataTextField = "Value";
ddlTypes.DataValueField = "Key";
ddlTypes.DataBind();
当然这是一个纯粹的蛮力黑客,毫无疑问其他人有一个更优雅的方式来做到这一点,但这至少会让你开始和运行。
答案 1 :(得分:1)
System.Enum.GetValues(typeof运算(System.Data.SqlDbType));
答案 2 :(得分:0)
没有内置方法可以做到这一点。