string Sqlstr = "select * from ArtcleClass where NavId=1";这样也错我就郁闷了错误:至少一个参数没有被指定值。

解决方案 »

  1.   

    如果代码就这么多。你可以试试
    string Sqlstr = "select * from [ArtcleClass] where [NavId]=1";
      

  2.   

    那还要多少
    select * from ArtcleClass where NavId=1
    查询分析器里能跑出来值么。
      

  3.   

    就这么个代码,你确定吗,应该没有错,你把这个代码放在SQL内面执行了,看看有没有错
      

  4.   

    难道是把ArticleClass写成了ArtcleClass?
      

  5.   

    检查SQL语句和数据库表及字段是否对应。
    加中括号,还有你的NavId是数值型的嘛?如果不是的话,如字符型的话,加引号。string Sqlstr = "select * from [ArtcleClass] where [NavId]='1'";
      

  6.   

    NavId是数字类型的,还有数据库名就是ArtcleClass,我从数据库里复制过去的
      

  7.   

      string Sqlstr = "select * from [ArtcleClass] where [NavId]=1";
    我这样写了,也提示同样的错误
      

  8.   

    你不会还赋值给SQL语句吧?
    (Sqlstr.SelectCommand.Parameters.Add(NavId);)
      

  9.   

    至少一个参数没有被指定值。 
    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.OleDb.OleDbException: 至少一个参数没有被指定值。源错误: 
    行 28:         string Sqlstr = "select * from [ArtcleClass] where [NavId]=1";
    行 29:         OleDbCommand cmd = new OleDbCommand(Sqlstr, Conn);
    行 30:         OleDbDataReader dr = cmd.ExecuteReader();行 31:         DataList1.DataSource = dr;
    行 32:         DataList1.DataBind();
     
      

  10.   

    这个语句在SQL视图执行是正常的
      

  11.   

    ArtcleClass是表名吧。设断点调试啊!很容易发现哪里的问题的。
      

  12.   

    在其它的方法里也是这样打开数据库的,17楼说的CommType是什么呢
      

  13.   


    olecomm.CommandType = CommandType.Text;//CommandType.Text执行SQL语句,CommandType.StoredProcedure执行存储过程
      

  14.   

    select [ArtID],[ClassName],[NavId] from [ArtcleClass] where [ArtcleClass].[NavId]=@navId
    这样子也还提示:至少一个参数没有被指定值。
      

  15.   

    ....
    OleDbCommand cmd = new OleDbCommand(Sqlstr, Conn);
    cmd.CommandType = CommandType.Text
    ....
      

  16.   

    这个是CommandType.Text的,晕了,就这个语句卡着我往下做不了了,各位再帮想想啊
      

  17.   

    我把这个语句放SQL视图里面能正确查出结果来的
      

  18.   

    晕,我看了,好像不是你的查询语句出错,而是你写的方法出错
    行 30: OleDbDataReader dr = cmd.ExecuteReader();行 31: DataList1.DataSource = dr;
    行 32: DataList1.DataBind();
    你的dr是class类型,怎么能用在DataList1.DataSource = dr这里呢
      

  19.   

    其实SQL出错了很好找的,设置断点,一调试就出来了!哥们,别蛋疼了慢点调试吧
      

  20.   

    啊,我晕死,我调两天了都,断点就在command.Fill(ds, "ds");
      

  21.   

    断点就在command.Fill(ds, "ds"); 
    报错
      

  22.   

    DataList1.DataSource 不是接收的不应该是一个datatable值吗,你把OleDbDataReader这个值给它应该是不行吧
      

  23.   

     connection.Open();
     OleDbDataAdapter command = new OleDbDataAdapter(SQLString, connection);
     command.Fill(ds, "ds");
    这样子也错,还没到你们的那一句就错了,哥们
      

  24.   

     string Sqlstr = "select * from ArtcleClass";
            OleDbCommand cmd = new OleDbCommand(Sqlstr, Conn);
            OleDbDataReader dr = cmd.ExecuteReader();
            DataList1.DataSource = dr;
            DataList1.DataBind();这样就对
      

  25.   

    那一定是你的字段名称写的不对,可能含空格等不可见的字符,你把access里面的字段名称改一下测试