Как вы можете заполнить поле со списком в vb.net именем столбца из Microsoft SQL Server

Как заполнить поле со списком в vb.net именем столбца с сервера Microsoft Sql? У меня есть имя таблицы Table_Categories. Я хочу заполнить поле со списком именами столбцов этой таблицы. Я также планирую добавить имена столбцов в таблицу, используя vb.net в качестве внешнего интерфейса. как мне это сделать ?

    Public Sub Categories()
    Dim Connect As New SqlConnection
    Dim Adapter As New SqlDataAdapter
    Dim DataTable As New System.Data.DataTable
    Dim Query As String
    ConnectionString = "Data Source=LUSPOC-PC;Initial Catalog=Sales_Invnetory;Integrated Security=True"
    Connect = New SqlConnection(ConnectionString)
    Connect.Open()
    Connect.ChangeDatabase("Sales_Inventory")
    Query = "select Column_name from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME='Table_Categories'"
    Adapter.SelectCommand = New SqlCommand(Query, Connect)

    Adapter.Fill(DataTable)
    Admin.items_category_combobx.DataSource = DataTable
    Admin.items_category_combobx.DisplayMember = "Column_name"
    Admin.items_category_combobx.ValueMember = "Column_name"




End Sub

person Ralph    schedule 01.09.2016    source источник
comment
Покажите нам некоторые усилия. что ты уже испробовал?   -  person Aethan    schedule 01.09.2016
comment
я пытался сделать это   -  person Ralph    schedule 01.09.2016
comment
Пожалуйста, избегайте использования комментариев для написания кода. Вместо этого отредактируйте свой вопрос.   -  person Zohar Peled    schedule 01.09.2016
comment
Не помещайте это как комментарий. Поместите это в свой пост, чтобы помочь улучшить свой вопрос, чтобы люди могли помочь вам лучше.   -  person Aethan    schedule 01.09.2016
comment
хорошо спасибо. Я новичок в этом, извините   -  person Ralph    schedule 01.09.2016


Ответы (2)


Connect.ChangeDatabase("database-name")    
Query = "select Column_name from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME='your-Table-name'"
    Admin.items_category_combobx.DataSource = DataTable
    Admin.items_category_combobx.DisplayMember = "Column_name"
    Admin.items_category_combobx.ValueMember = "Column_name"

Измените свой запрос, как указано выше, и вы получите имена столбцов в своем наборе данных. Для добавления столбца возьмите имя столбца и тип от пользователя. построить и выполнить запрос alter table для добавления столбца из него.

person Akshey Bhat    schedule 01.09.2016
comment
в чем именно проблема? - person Akshey Bhat; 01.09.2016
comment
Я отредактировал свой вопрос с отправленным запросом. чтобы вы видели, как я его использую. это правильно ? - person Ralph; 01.09.2016
comment
установите для displaymember и valuemember значение column_name. Вы неправильно поставили - person Akshey Bhat; 01.09.2016
comment
проверьте мой измененный ответ - person Akshey Bhat; 01.09.2016
comment
Вы имеете в виду, что остальные уже верны? Я уже меняю его на Column_name, все равно ничего не происходит. Кстати, я модуль, мне нужно поместить его в поле со списком? - person Ralph; 01.09.2016
comment
источник данных должен быть доступным для данных, а не адаптером. Да, эти свойства имеют поле со списком - person Akshey Bhat; 01.09.2016
comment
Adapter.SelectCommand.ExecuteNonQuery() не требуется. Адаптер, Fill получит данные для вас. - person Akshey Bhat; 01.09.2016
comment
спасибо, я уже сделал то, что вы сказали, но мое поле со списком все еще пусто - person Ralph; 01.09.2016
comment
попробуйте запустить запрос непосредственно к базе данных, в которой присутствует таблица, и посмотрите, получите ли вы какие-либо результаты. - person Akshey Bhat; 01.09.2016
comment
результат пустой - person Ralph; 01.09.2016
comment
вот почему вы не можете видеть какие-либо элементы в раскрывающемся списке. проверьте правильность имени таблицы или нет. проверьте, существует ли он в базе данных, к которой вы выполняете запрос. добавьте оператор USE ‹database-name› перед выполнением запроса. - person Akshey Bhat; 01.09.2016
comment
Я уже вижу имена столбцов в результате, когда использую USE ‹имя_базы_данных›, но запускаю запрос к базе данных напрямую, как это сделать в vb.net? - person Ralph; 01.09.2016
comment
В строке подключения vb.net установите значение целевой базы данных в вашу базу данных. - person Akshey Bhat; 01.09.2016
comment
вы можете написать это как синтаксис? Я не понимаю. пожалуйста ? - person Ralph; 01.09.2016
comment
добавьте строку кода перед переменной запроса, как указано в моем измененном ответе - person Akshey Bhat; 01.09.2016
comment
Я уже изменил код, как вы сказали. но все равно ничего. - person Ralph; 02.09.2016
comment
Пожалуйста, поделитесь значением переменной ConnectionString. - person Akshey Bhat; 02.09.2016
comment
ConnectionString есть мое подключение к базе данных - person Ralph; 02.09.2016
comment
LUSPOC-PC: -- Это имя ПК для сервера базы данных? - person Akshey Bhat; 02.09.2016
comment
Да это так. Я скопировал его из диалогового окна SQL SERVER. - person Ralph; 02.09.2016
comment
исправьте имя базы данных в строке подключения. Это Sales_Invnetory или Sales_Inventory? - person Akshey Bhat; 02.09.2016

person    schedule
comment
нужно ли объявлять DataTextField, DataValueField, DataBind()? это не работает - person Ralph; 01.09.2016
comment
как ? Я новичок в этом . - person Ralph; 01.09.2016