代码如下:strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + System.Web.HttpContext.Current.Server.MapPath(System.Configuration.ConfigurationSettings.AppSettings["DataPath1"]) + ";User Id=admin;Password=;";
OleDbConnection conn;
conn = new OleDbConnection(strConn);
conn.Open();
OleDbCommand cmd  = conn.CreateCommand();
cmd.CommandText = strSql;
//Response.Write("函数内部:" +cmd.CommandText);
int i = Convert.ToInt32(cmd.ExecuteScalar());
错误提示:
“/test”应用程序中的服务器错误。
--------------------------------------------------------------------------------至少一个参数没有被指定值。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.OleDb.OleDbException: 至少一个参数没有被指定值。源错误: 
行 294: cmd.CommandText = strSql;
行 295: Response.Write("函数内部" +cmd.CommandText);
行 296: int i = Convert.ToInt32(cmd.ExecuteScalar());

解决方案 »

  1.   


    OleDbCommand cmd  = conn.CreateCommand();
    cmd.CommandText = strSql;
    cmd.CommandType = CommandType.Text;//加上这句试试
      

  2.   

    ExecuteScalar列回的是什么?你拿来传到toint32上?
      

  3.   

    你能将你的sql查询语句贴出来吗?
    这种问题很可能是SQL语句错误,有些SQL语句错误会提示参数未指定
      

  4.   

    strSql这里里面是不是有参数(包括@)?如果有请指定后再执行。
      

  5.   


    //可以这样写的.
        OleDbCommand myCommand = new OleDbCommand(sql, conn);
        conn.Open();
        int ret = (int)myCommand.ExecuteScalar();
        conn.Close();
      

  6.   

    关键就在cmd.CommandText = strSql;这就上面
    贴出strSql
    肯定你得Command少传了几个参数进入存储过程!
      

  7.   

    sql语句如下:
    select replierid from [replierinf] where time='2005-12-2 12:44:43' and ipaddr='127.0.0.1'
      

  8.   

    没指定cmd的数据库连接
    cmd.Connection = conn;
      

  9.   

    看一下连接字符串:
    strConn的值是否各个连接参数都取到了值.
    估计是:
    System.Configuration.ConfigurationSettings.AppSettings["DataPath1"]
    没有取到值.
      

  10.   

    原因知道了,用time做字段好像不行,我就把access数据库中字段time改成replytime了,但是这条sql语句中忘记改了。不要意思,^_^。但是现在出现新的问题了。time是日期型字段,我用上面的语句查询怎么提示我"标准表达式中数据类型不匹配。
      

  11.   

    原因知道了,用time做字段好像不行,我就把access数据库中字段time改成replytime了,但是这条sql语句中忘记改了。不好意思,^_^。但是现在出现新的问题了。
    select replierid from [replierinf] where replytime='2005-12-2 12:44:43' and ipaddr='127.0.0.1'
    time是日期型字段,我用上面的语句查询怎么提示我"标准表达式中数据类型不匹配。
      

  12.   

    select replierid from [replierinf] where replytime=#2005-12-2 12:44:43# and ipaddr='127.0.0.1'日期赋值前后加上"#"建议使用OleDbParameter
      

  13.   

    -------------这样试试---------------------
    string strSql="select replierid from [replierinf] where replytime=N'2005-12-2 12:44:43') and ipaddr='127.0.0.1'"
    ---------------------------------------------------------------------------
      

  14.   

    十分感谢各位朋友!!!前面问题:是因为sql语句中有个字段名字写错导致的(应该为replytime,写成time了)。
    后面的问题:日期赋值前后加上"#"就可以了。select replierid from [replierinf] where replytime=#2005-12-2 12:44:43# and ipaddr='127.0.0.1'