我正在使用c#.net windows表单应用程序。我创建了一个包含许多表的数据库。在其中一个表中,我输入了数据。在这个表中,我有4列名为key,name,age,value。这里第一列的名称“key”是关键字。现在我试图将这些列名称放入组合框中。我无法得到“钥匙”这个名字。
当我使用此代码时,它适用于“密钥”:
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;
}
这是因为我在选择查询中使用“[”。但它不适用于非钥匙。或者如果我删除“[”它不适用于密钥。请建议我,以便我可以获得关键和非关键列名称。
答案 0 :(得分:0)
Value
也是MSSQL中的关键字。我原本以为你必须将它包装在[]中。
答案 1 :(得分:0)
尝试将Alias用于“密钥”列。
对于例如:选择键作为关键字,值为KeywordValue ...
答案 2 :(得分:0)
将它们括在方括号中:
select [key] from tbl
或者如果您希望您的代码符合ANSI标准,请使用双引号:
select "key" from tbl
如果这样可以尝试:
SqlDataAdapter adp = new SqlDataAdapter(" Select \"" + combofirstcolumn.SelectedItem.ToString() + "\"," + comboseccolumn.SelectedItem.ToString() + "\t from " + tablename, con);