Как выбрать таблицу из базы данных с помощью комбинированного списка? - PullRequest
0 голосов
/ 20 мая 2019

Я создаю приложение базы данных wpf и хочу выбрать таблицу из своей базы данных с помощью комбинированного списка.

У меня есть база данных с десятью таблицами.Я могу подключиться к базе данных и выбрать / обновить / вставить ... элементы из таблицы.Мне нужно переключаться между таблицами.Например, если я нажму на Table1, будет выбрана Table1, если я нажму на Table2, будет выбрана Table2.Я считаю, что Combobox хорош для моего приложения.Это мой код для выбора:

public MainWindow()
        {
            InitializeComponent();
            loadData();
        }

        public void loadData()
        {
            // vytvoření spojení
            MySqlConnection con = new MySqlConnection(spojeni);
            con.Open();

            MySqlCommand vybrat = con.CreateCommand();     
            vybrat.CommandText = "SELECT * FROM barva";        
            MySqlDataAdapter adapt = new MySqlDataAdapter(vybrat);        
            DataSet data = new DataSet();

            adapt.Fill(data);           
            dtGrid.ItemsSource = data.Tables[0].DefaultView;
          }

PS.Я прошу прощения за мой английский

Ответы [ 2 ]

0 голосов
/ 21 мая 2019

Вот очень простой пример привязки выпадающего списка к списку строк и использования выбранной строки при нажатии кнопки.

Это файл кода C #:

using System.Collections.Generic;
using System.Windows;

namespace WpfCombobox
{
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            this.InitializeComponent();
        }

        public string MySimpleStringProperty { get; set; }

        public List<string> MyListProperty { get; set; } = new List<string>() { "one", "two", "three" };

        private void ButtonBase_OnClick(object sender, RoutedEventArgs e)
        {
            MessageBox.Show($"Item is {this.MySimpleStringProperty}");
        }
    }
}

Очевидно, что вместо того, чтобы просто отображать выбранный элемент в окне сообщения, вы бы использовали его в своем SQL.

А вот и WPF:

<Window x:Class="WpfCombobox.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:WpfCombobox"
        mc:Ignorable="d"
        DataContext="{Binding RelativeSource={RelativeSource Self}}"
        Title="MainWindow" Height="350" Width="525">
    <StackPanel>
        <ComboBox ItemsSource="{Binding MyListProperty}" 
                  SelectedItem="{Binding MySimpleStringProperty}" 
                  IsSynchronizedWithCurrentItem="True" 
                  Text="Select Option"
                  Margin="5"/>
        <Button Click="ButtonBase_OnClick" Content="Click Me!" Margin="5" />
    </StackPanel>
</Window>

Обратите внимание, что у выпадающего списка есть ItemSource, который связан со списком строк one, two, three, и SelectedItem, который изменяется, когда пользователь выбирает элемент.

0 голосов
/ 20 мая 2019

Полагаю, вы ищете что-то вроде этого (строка подключения относится к конфигурации в web.config):

<connectionStrings>
  <add name="YOUR CONNECTION" connectionString="Data Source= ;Initial Catalog= ; User ID= ;Password= ;" providerName="System.Data.SqlClient" />
</connectionStrings>
//Connection to Web.config connectionStrings
DataTable database = new DataTable();
string dbString = ConfigurationManager.ConnectionStrings["YOUR CONNECTION"].ConnectionString;
using (SqlConnection con = new SqlConnection(dbString))
{
    try
    {
        //SQL query
        SqlDataAdapter adapter = new SqlDataAdapter("SELECT * FROM sys.tables", con);
        adapter.Fill(database);

        //Populate ddlTable DropDownList
        ddlTable.DataSource = database;
        ddlTable.DataTextField = "name";
        ddlTable.DataValueField = "name";
        ddlTable.DataBind();
        ddlTable.Items.Insert(0, new ListItem("-- Select Table --", "0"));
    }
    catch (Exception)
    {

    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...