C# 从其中一个列名是关键字的表中获取列名
我正在使用c.NETWindows窗体应用程序。我创建了一个包含许多表的数据库。在其中一个表中,我输入了数据。在这个表中,我有4列,分别命名为key、name、age和value。这里,第一列的名称键是一个关键字。现在,我试图将这些列名放入组合框中。我无法获取名称密钥 当我使用此代码时,它适用于键:C# 从其中一个列名是关键字的表中获取列名,c#,sql-server,C#,Sql Server,我正在使用c.NETWindows窗体应用程序。我创建了一个包含许多表的数据库。在其中一个表中,我输入了数据。在这个表中,我有4列,分别命名为key、name、age和value。这里,第一列的名称键是一个关键字。现在,我试图将这些列名放入组合框中。我无法获取名称密钥 当我使用此代码时,它适用于键: private void comboseccolumn_SelectedIndexChanged(object sender, EventArgs e) { string dbname =
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 path=@"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;
}
这是因为我在select查询中使用了[但它对非键不起作用。或者如果我删除了[它对键不起作用。请建议我,以便我可以同时获得键和非键列名。值也是MSSQL中的一个关键字。我原以为您必须将其包装在[]也是。尝试对键列使用别名
例如:选择键作为关键字,选择值作为关键字值…仅将它们括在方括号中:
select [key] from tbl
或者,如果希望代码符合ANSI标准,请使用双引号:
select "key" from tbl
如果可行,请尝试以下操作:
SqlDataAdapter adp = new SqlDataAdapter(" Select \"" + combofirstcolumn.SelectedItem.ToString() + "\"," + comboseccolumn.SelectedItem.ToString() + "\t from " + tablename, con);
@巴里,我刚刚运行了SELECT[Key],Value FROM atable,其中包含ske和dvalueas列名,它对我来说运行正常。也许你可以列出你收到的错误消息?没有它,很难确切知道什么不起作用。。