我要从主页显示默认的二级菜单,如果用户不点击一级栏目,就默认MenuID=1
但我的程序不对!请高手指点!
我的例如:default.aspx 执行时程序默认MENUID=1
当用户电机了栏目default.aspx?MenuID=5,则现实相应的menuID=X
string @MenuID=Request["MenuID"];
if(@MenuID == "")
{
SqlConnection myConnection  = new SqlConnection("server=127.0.0.1;database=misweb;uid=sa;pwd=123456");
SqlDataAdapter myCommand = new SqlDataAdapter("select * from menuItem where MenuID=1",myConnection); DataSet ds = new DataSet();
myCommand.Fill(ds,"menuItem"); DataList2.DataSource = ds.Tables["menuItem"].DefaultView;
DataList2.DataBind();
}
else
{
SqlConnection myConnection  = new SqlConnection("server=127.0.0.1;database=misweb;uid=sa;pwd=123456");
SqlDataAdapter myCommand = new SqlDataAdapter("sp_menuItem",myConnection);
                
myCommand.SelectCommand.CommandType = CommandType.StoredProcedure;
myCommand.SelectCommand.Parameters.Add(new SqlParameter("@MenuID",SqlDbType.Int));
myCommand.SelectCommand.Parameters["@MenuID"].Value = Request["MenuID"];

DataSet ds = new DataSet();
myCommand.Fill(ds,"menuItem"); DataList2.DataSource = ds.Tables["menuItem"].DefaultView;
DataList2.DataBind();

解决方案 »

  1.   

    程序 'sp_menuItem' 预期使用未提供的参数 '@MenuID'。 
    Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. Exception Details: System.Data.SqlClient.SqlException: 程序 'sp_menuItem' 预期使用未提供的参数 '@MenuID'。Source Error: 
      

  2.   

    string @MenuID=Request["MenuID"];
    你把这个@MenuID先换成其他的变量名
      

  3.   

    我换了!但不顶用!
    应为我调用存储过程的,所以我想先在首页默认显示MENUID=1
    谢谢指教
      

  4.   

    搂主用保守点的代码试试:SqlConnection myConnection = new SqlConnection("server=127.0.0.1;database=misweb;uid=sa;pwd=123456");
    SqlDataAdapter myCommand = new SqlDataAdapter("",myConnection);
    SqlCommand cmd = new SqlCommand();
    cmd.CommandText  = "sp_menuItem";cmd.CommandType = CommandType.StoredProcedure;
    SqlParameter sp = new SqlParameter("@MenuID",SqlDbType.Int);
    sp.Value = Request["MenuID"];
    cmd..Parameters.Add( sp );
    myCommand.SelectCommand = cmd ;
    myConnection.Open();DataSet ds = new DataSet();
    myCommand.Fill(ds,"menuItem");
     ...
      

  5.   

    申明了
    过程代码
    CREATE PROCEDURE SO_MeunID @MenuID INT 
    SELECT * FROM SELECT MENUITEM WHERER MENUID=@MENUID
    GO
      

  6.   

    不要意思!
    申明了
    过程代码
    CREATE PROCEDURE sp_menuitem  @MenuID INT 
    SELECT * FROM SELECT MENUITEM WHERER MENUID=@MENUID
    GO
      

  7.   

    二楼的错误代码是我主页默认显示default.aspx不带参数时候的提示!
      

  8.   

    因为你的Request["MenuID"] = null
      

  9.   

    代码质量太差:
    下面的找开数据库可以用一段代码来写:
    前面可以写:
    string @MenuID=Request["MenuID"];
    if ( @MenuID == null )
    {
        @MenuID = 1;
    }
    下面是打开数据的代码1
    你这段的错误可能是楼上所说的:Request["MenuID"] = null
      

  10.   

    foxflyhigher的经典,应该这样写,你原来的写法代码太多!