我收到以下错误:
对象或列名称缺失或为空。对于SELECT INTO语句,请验证每列是否具有名称。对于其他语句,请查找空别名。不允许使用定义为“”或[]的别名。添加名称或单个空格作为别名。
对于下面显示的查询:
if (comboBox1.SelectedIndex > -1) {
// comboBox1.UpdateLayout();
SqlCom.CommandText = "select distinct table_name from [" +comboBox1.Text + "].information_schema.columns c inner join [" + comboBox1.Text + "].sys.tables t on c.table_name = t.name order by table_name";
using (SqlDR = SqlCom.ExecuteReader()) {
comboBox2.Items.Clear();
while (SqlDR.Read()) {
comboBox2.Items.Add(SqlDR.GetString(0));}
}
}
知道这里有什么问题吗?
我填充了combobox1 whit:`SqlCom.CommandText =“select * from sys.databases where database_id> 4 order by name”; 这没关系
答案 0 :(得分:2)
正如您在其中一条评论中提到的,实际查询是:
select distinct table_name
from .information_schema.columns c
inner .sis.tables t
on c.table_name = t.name order by table_name
这意味着你的两个组合框值都是空的。探索你失去价值的地方,你会得到答案。
答案 1 :(得分:1)
所以如果我读得对......
组合框1是数据库名称列表...
组合框2是表名列表...
您正在尝试查找给定数据库的表列表以填充组合框2,对吧?如果是的话......