System.Data.SqlClient.SqlException:“无效的列名称 'music'。”

System.Data.SqlClient.SqlException: 'Invalid column name 'music'.'

我想根据菜单项值显示类别(服务),因此当用户单击音乐项时,它应该从数据库 table (ServiceP) 中填充中继器名称service = 到菜单项值。

我试过这段代码,但出现错误

System.Data.SqlClient.SqlException: 'Invalid column name 'music'

这是用户点击菜单项时的代码

 protected void Menu1_MenuItemClick(object sender, MenuEventArgs e)
 {
     SqlConnection conn = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\TOSHIBA\Documents\PartyZone.mdf;Integrated Security=True;Connect Timeout=30");
     conn.Open();

     SqlCommand cmd = conn.CreateCommand();
     cmd.CommandType = CommandType.Text;
     cmd.CommandText = "select * from ServiceP where 
     ServiceName = "+e.Item.Value.ToString() ;

     cmd.ExecuteNonQuery();

     DataTable dt = new DataTable();
     SqlDataAdapter da = new SqlDataAdapter(cmd);
     da.Fill(dt);

     d1.DataSource = dt;
     d1.DataBind();

     conn.Close();
} 

假设你实际上有:

cmd.CommandText = "select*from ServiceP where ServiceName="+e.Item.Value.ToString() ;

e.Item.Value"music",那么这里需要的是一个参数来保存要搜索的值,即

cmd.CommandText = "select*from ServiceP where ServiceName=@value";
cmd.Parameters.AddWithValue("@value", e.Item.Value.ToString());

请注意,您也可以丢弃 cmd.ExecuteNonQuery(); - 它在这里没有任何用处,意味着您做了两次工作。