1

次のエラーが表示されます。

オブジェクトまたは列の名前が見つからないか空です。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));}

        }
}

ここで何が問題なのか分かりますか?

コンボボックス 1 を埋めます: `SqlCom.CommandText = "select * from sys.databases where database_id > 4 order by name"; これは正常に動作します

4

2 に答える 2

2

コメントの1つで述べたように、実際のクエリは次のとおりです。

select distinct table_name 
from .information_schema.columns c 
inner .sis.tables t 
on c.table_name = t.name order by table_name 

これは、両方のコンボボックスの値が空であることを意味します。どこで値を失うかを探ると、答えが得られます。

于 2013-08-21T17:12:40.097 に答える