C# System.Data.SqlClient.SqlException:';无效的列名';音乐';
我想根据菜单项值显示一个类别(服务),因此,当用户单击音乐项时,例如,它应该从数据库表(ServiceP)填充中继器,其中服务的名称=到菜单项值 我尝试了这个代码,但我得到了一个错误 System.Data.SqlClient.SqlException:'无效列名'music' 这是用户单击菜单项时的代码C# System.Data.SqlClient.SqlException:';无效的列名';音乐';,c#,asp.net,menuitem,C#,Asp.net,Menuitem,我想根据菜单项值显示一个类别(服务),因此,当用户单击音乐项时,例如,它应该从数据库表(ServiceP)填充中继器,其中服务的名称=到菜单项值 我尝试了这个代码,但我得到了一个错误 System.Data.SqlClient.SqlException:'无效列名'music' 这是用户单击菜单项时的代码 protected void Menu1_MenuItemClick(object sender, MenuEventArgs e) { SqlConnection conn =
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()代码>-这在这里没有任何用处,意味着你要做两次工作。假设你确实有:
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()代码>-这在这里没有任何用处,意味着你要做两次工作。很难确切地说出你现在在做什么,因为对于未终止的单行字符串,它甚至无法编译。你能澄清一下where
和ServiceName
附近发生了什么吗?还有,这个表是什么样子的?现在很难说清楚你在做什么,因为使用未终止的单行字符串,它甚至无法编译。您能否澄清在位置
和服务名称
附近发生的情况?此外,该表是什么样子的?