【发布时间】:2013-08-21 16:28:30
【问题描述】:
我收到以下错误:
对象或列名丢失或为空。对于 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"; 这工作正常
【问题讨论】:
-
填写组合框中的值后发布您的查询
-
在
using上添加一条断线,然后检查您的查询的样子。此外,它清楚地表明,Aliases defined as "" or [] are not allowed并且您同时拥有 [ 和 ]。 -
我想说有很多问题。 SQL 注入,不正确地处理非托管资源(即:缺少
SqlCommand对象的USING子句),没有错误处理......但是,这些都不是您要询问的特定问题。照着没人说的做,然后发布生成的实际查询。 -
你用 SSMS 试过了吗?