2010-04-29 5 views
0

Im utilisant C# .net Windows formulaire de demande. J'ai créé une base de données qui a beaucoup de tables. Dans l'un des tableaux, j'ai entré des données. Dans ce tableau, j'ai 4 colonnes nommées clé, nom, âge, valeur. Ici, le nom "clé" de la première colonne est un mot clé. Maintenant j'essaye d'obtenir ces noms de colonne dans une zone de liste déroulante. Je suis incapable d'obtenir le nom "clé".obtenir des noms de colonnes à partir d'une table dont l'un des noms de colonnes est un mot clé

Il travaille pour « clé » lorsque j'utilise ce code:

private void comboseccolumn_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    string dbname = combodatabase.SelectedItem.ToString(); 
    string path = @"Data Source=" + textBox1.Text + ";Initial Catalog=" + dbname + ";Integrated Security=SSPI"; 
    //string [email protected]"Data Source=SYED-PC\SQLEXPRESS;Initial Catalog=resources;Integrated Security=SSPI"; 
    SqlConnection con = new SqlConnection(path); 
    string tablename = comboBox2.SelectedItem.ToString(); 
    //string query= "Select * from" +tablename+; 
    //SqlDataAdapter adp = new SqlDataAdapter(" Select [Key] ,value from " + tablename, con); 
    SqlDataAdapter adp = new SqlDataAdapter(" Select [" + combofirstcolumn.SelectedItem.ToString() + "]," + comboseccolumn.SelectedItem.ToString() + "\t from " + tablename, con); 
    DataTable dt = new DataTable(); 
    adp.Fill(dt); 

    dataGridView1.DataSource = dt; 
} 

C'est beacuse J'utilise « [ » dans la requête de sélection. Mais cela ne fonctionnera pas pour les non-clés. Ou si je supprime le "[" il ne fonctionne pas pour la clé. S'il vous plaît me suggérer afin que je puisse obtenir à la fois la clé ainsi que les noms de colonnes non-clés.

+0

Peut-être pourriez-vous lister le message d'erreur que vous recevez? Sans cela, il est difficile de savoir exactement ce qui ne fonctionne pas .. – Rob

+0

s'il vous plaît poster l'erreur exacte –

Répondre

0

Il suffit de les enfermer dans crochets:

select [key] from tbl 

Ou si vous voulez que votre code soit conforme à la norme ANSI, utiliser le double citation:

select "key" from tbl 

Essayez ceci si cela fonctionnera:

SqlDataAdapter adp = new SqlDataAdapter(" Select \"" + combofirstcolumn.SelectedItem.ToString() + "\"," + comboseccolumn.SelectedItem.ToString() + "\t from " + tablename, con); 
0

Value est également un mot-clé dans MSSQL. J'aurais pensé que vous auriez à envelopper dans [] aussi. Essayez d'utiliser Alias ​​pour la colonne "clé".

+0

@Barry, je viens de lancer 'SELECT [Key], Value FROM ATableThatContainsKeyAndValueAsColumnNames' et cela a fonctionné sans erreur pour moi .. – Rob

0

Pour Ex: Sélectionnez la clé en tant que mots-clés, valeur KeywordValue ...

Questions connexes