【问题标题】:How can I display all my sql tables in a ListBox如何在 ListBox 中显示我的所有 sql 表
【发布时间】:2019-07-03 14:52:41
【问题描述】:

我正在尝试从我的数据库中接收信息。我需要列出我所有的表名。我想我根本没有接近执行。我正在尝试但不工作,.sql 是我的连接字符串

private void ListBox1_SelectedIndexChanged(object sender, System.EventArgs e)
{ 
    listBox1.Text= (SQLConnection.sql = "SELECT* FROM INFORMATION_SCHEMA.TABLES");
}

【问题讨论】:

    标签: c# mysql sql


    【解决方案1】:

    如果您定义了一个 DbContext 来访问您的数据库,您可以执行以下操作。 (假设您使用的是实体框架)。

    using(var ctx = new YourDbContex())
    {
       var tableNames = ctx.Database.SqlQuery<string>("SELECT t.TABLE_NAME FROM INFORMATION_SCHEMA.TABLES as t WHERE t.TABLE_TYPE = 'BASE TABLE' AND t.TABLE_SCHEMA = 'yourDatabase'").ToList() ;  
       listBox1.Text = String.Join(", ", tableNames);  
    }
    

    此 SqlQuery 将获取您在 'yourDatabase' 中定义的所有表,并将 Text 设置为 "table1, table2, ..."

    如果您不想使用 DbContext 访问您的数据库,您可以使用 SqlCommandClass 来完成。使用 sql 作为连接字符串。

    var command = sql.CreateCommand() ;
    command.CommandText = "SELECT t.TABLE_NAME FROM INFORMATION_SCHEMA.TABLES as t WHERE t.TABLE_TYPE = 'BASE TABLE' AND t.TABLE_SCHEMA = 'yourDatabaseName'";  
    List<string> tableNames = new List<string>() ;
    
    sql.Open() ;
    
    using(var reader = command.ExecuteReader())
    {
      while(reader.Read())
      {
        tableNames.Add(reader.GetString(0)) ;
      }
    }
    
    sql.Close();
    
    listBox1.Text = String.Join(", ", tableNames) ;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多