一次一个地迭代表中的每个列名

时间:2014-11-21 08:11:26

标签: sql-server vb.net

我有一系列excel文档,它们都有不同的结构,我试图导入到SQL数据库中。我提出的解决方案是让用户使用数据库中的列映射电子表格中的列。我遇到的问题是一次获取一个数据库列名,我可以使用Microsoft SQL Server Management Studio中的以下SQL命令一次性获取它们但我可以在我的生活中让它迭代通过它们和我我不知道如何将其翻译成vb.net。

SELECT [name] AS [Column Name]
FROM syscolumns
WHERE id = (SELECT id FROM sysobjects WHERE type = 'U' AND [Name] = 'table1')

我目前让用户从列表框中选择电子表格列,我希望数据库列显示在它上方的标签中,这样当用户点击下一步时,我可以重置列表框并移动到下一个数据库列,同时映射二维数组中的两个列名。

2 个答案:

答案 0 :(得分:1)

试试这个

        using (var conn = new SqlConnection("<your connection string>)"))
        using (var cmd = new SqlCommand("SELECT * from table1)", conn))
        {
            conn.Open();
            using (var reader = cmd.ExecuteReader())
            {
                for (int i = 0; i < reader.FieldCount; i++)
                {
                    reader.GetName(i);
                }
            }
        }

答案 1 :(得分:0)

    Using conn As New SqlConnection(My.Settings.UK_DATABASE_2014ConnectionString)
        Using cmd As New SqlCommand("select * from table1;", conn)
            conn.Open()
            Dim reader As SqlDataReader = cmd.ExecuteReader()
            If i >= reader.FieldCount Then
                Return True
            Else
                Label1.Text = reader.GetName(i)
                i = i + 1
            End If
        End Using
    End Using