我想根据菜单项值显示一个类别(服务),所以当用户点击音乐项目时,它应该从数据库表(ServiceP)填充转发器,其中服务的名称=到菜单项值。
我尝试了这段代码,但收到了错误
System.Data.SqlClient.SqlException:'无效的列名'音乐'
这是用户点击菜单项
时的代码 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();
}
答案 0 :(得分:4)
假设你确实有:
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();
- 这里没什么用处,意味着你要做两次工作。