2016-07-14 3 views
0

以前の問題が解決された時点で、新しい問題が発生しました。私が使用していますcのリストボックスに列名が表示されない

System.Data.DataRowView 

コード:

  private void textBox1_TextChanged(object sender, EventArgs e) 
     { 

       if (textBox1.Text == "select" || textBox1.Text == "SELECT" || textBox1.Text == "SELECT") 
       { 
        string cmdstr = @"select * from information_schema.columns where table_name = '" +comboBox1.SelectedItem+ "'"; 
        string conStr = @"Data Source=INPDDBA027\NGEP;Initial Catalog=Dev_Server;Integrated Security=True"; 
        DataTable dt = new DataTable(); 
        SqlDataAdapter sda = new SqlDataAdapter(cmdstr, conStr); 
        sda.Fill(dt); 
        listBox2.DataSource = dt; 

      } 

     } 

が助けてください、私は自分のコードを実行すると は、それは私に(明らかに私の列名ではありません)として列名を与えます。

SELECT 
COLUMN_NAME 
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE TABLE_NAME = 'YourTableNameHere' 

あなたはSqlCommandを使用して、これを実行し、あなたのListBoxためdataSourceとして結果を使用する必要があります。

+0

何か試しましたか? –

+1

[SQL Serverのテーブルから列名を取得するにはどうすればよいですか?](http://stackoverflow.com/questions/1054984/how-can-i-get-column-names-from-a-table- in-SQL-server) –

答えて

1

INFORMATION_SCHEMAはあなたの方法です。このように:

private static List<string> ReadTableColumns(string connectionString) 
{ 
    List<string> columnNames = new List<string>(); 
    string queryString = 
     "SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS " + 
     + "WHERE TABLE_NAME = 'YourTableNameHere'"; 

    using (SqlConnection connection = new SqlConnection(connectionString)) 
    { 
     SqlCommand command = new SqlCommand(
      queryString, connection); 
     connection.Open(); 
     SqlDataReader reader = command.ExecuteReader(); 
     try 
     { 
      while (reader.Read()) 
      { 
       columnNames.Add(reader[0].ToString()); 
      } 
     } 
     finally 
     { 
      // Always call Close when done reading. 
      reader.Close(); 
     } 
    } 

    return ColumnNames; 
} 


listBox1.Datasource = ReadTableColumns(yourConnectionString); 
+0

ありがとうございます。出来た。 :) –

関連する問題