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();
- 它在这里没有任何用处,意味着您做了两次工作。
我想根据菜单项值显示类别(服务),因此当用户单击音乐项时,它应该从数据库 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();
- 它在这里没有任何用处,意味着您做了两次工作。