【发布时间】:2018-10-12 14:21:21
【问题描述】:
我在 Visual Studio 中工作以获取 SQL Server 中的数据库名称,并获得成功。但现在我想用用户从另一个组合框中选择的数据库的表名填充组合框。这是我到目前为止在运行应用程序时尝试过的,表名的组合框是为我在查询中提到的数据库填充的。但它应该取决于用户,如果他从组合框中选择任何数据库,那么表名因为该数据库应填充在表名组合框中。所以用户不能在查询中明确提及数据库的名称。
基本上,它应该从组合框中选择所选数据库的名称,并使用尊重的表名填充另一个组合框。
using (SqlCommand com = new SqlCommand("SELECT TABLE_NAME FROM
RegistrationFrom.INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE'",
con))
{
using (SqlDataReader reader = com.ExecuteReader())
{
//comboBox1.Items.Clear();
while (reader.Read())
{
comboBox1.Items.Add((string)reader["TABLE_NAME"]);
}
}
}
【问题讨论】:
-
RegistrationFrom 是数据库的名称,你只需要将它替换为你的第一个组合框的值。
-
@BrunoQuintella 我可以从字符串中的组合框中获取当前选定的项目,即数据库名称,但我不知道我应该如何替换查询中的字符串值。你能再写一次查询吗?
-
也许您应该使用
SqlConnectionStringBuilder并在每次查询所选数据库之前更改连接字符串。 -
如果我理解你想要的正确你的查询必须是:
SELECT TABLE_NAME FROM RegistrationFrom.INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE' AND TABLE_SCHEMA='<Selected Database Name>' -
@BanForFun 谢谢,但我想要这样的东西。 SELECT TABLE_NAME FROM combox.Text INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE'.......combox.Text 包含数据库名称
标签: c# sql-server winforms visual-studio