【问题标题】:I want to show all the tables of sql names in combobox我想在组合框中显示所有 sql 名称表
【发布时间】:2020-03-25 19:09:33
【问题描述】:

我想在一个组合框中显示 MySQL 数据库的所有表名,并在另一个组合框中显示从第一个组合框中选择的表的行。

    string cmdstr = "select * from sys.tables";
    string conStr = @"Data Source=DESKTOP-63RVRDI\IBRAHIMDATABASE;Initial Catalog=Sample_DataBase;Integrated Security=True"
    DataTable dt = new DataTable();

    SqlDataAdapter sda = new SqlDataAdapter(cmdstr,conStr);

    try
    {
        sda.Fill(dt);

        foreach (DataTables tbl in dt.DataTables)
        {
            comboBox1.Items.Add(tbl[1]);
        }
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }

【问题讨论】:

  • 感谢您的贡献。请更具体地提出您的问题。你没有提到你的问题到底是什么。
  • SqlDataAdapter 适用于 Microsoft SQL Server 数据库 - 不是 MySQL .....所以您使用的是 MySQL,还是(MS)SQL Server?请更新您的问题并为您的问题添加适当的数据库标签

标签: c#


【解决方案1】:

我假设您希望在第二个组合框中显示表格列。如果是这种情况,请尝试以下代码。

加载表格

        string cmdstr = "SELECT * FROM sys.Tables";
        DataTable dt = new DataTable();
        SqlDataAdapter sda = new SqlDataAdapter(cmdstr, connectionString);
        sda.Fill(dt);

        foreach (DataRow row in dt.Rows)
        {
            cboTables.Items.Add(row["name"]);
        }

现在为表格组合框添加一个 SelectedIndexChanged 事件并添加以下代码。

        cboColumns.Items.Clear();
        string cmdstr = "SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = '" + cboTables.Text + "' ORDER BY ORDINAL_POSITION";
        DataTable dt = new DataTable();
        SqlDataAdapter sda = new SqlDataAdapter(cmdstr, connectionString);
        sda.Fill(dt);

        foreach (DataRow row in dt.Rows)
        {
            cboColumns.Items.Add(row["COLUMN_NAME"]);
        }
        cboColumns.SelectedIndex = 0;

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-26
    • 2018-08-04
    • 1970-01-01
    • 2011-05-11
    • 1970-01-01
    • 2013-08-06
    • 2019-03-16
    相关资源
    最近更新 更多