是-1说明有异常啊,一般我所看到的ExecuteScalar()是这种表达方式:
StandardPrice=(int)sqlSelectCommand1.ExecuteScalar();
不能用其他类型的吧,好象只能用int。
你先把try和catch去调,然后运行程序,看看到底错在什么地方,这可是调试的基本功啊

解决方案 »

  1.   

    去掉try和catch我早就试过了,说是内部服务器错误
    换成int也没用的
      

  2.   

    不要去除try catch 在catch(Exception e),查看e.Message,或者
    try
    {
    .
    .
    .
    }
    catch( Exception e )
    {
      Response.Write( e.ToString() );
    }
      

  3.   

    这个方法实现:输入ProductID,返回StandardPrice
      急啊,请大家帮忙
      

  4.   

    sqlSelectCommand1.ExecuteScalar();//我没见过ExecuteScalar可以得到这样的数据,它是计算数据个数的,如SELECT COUNT(*) AS NUM FROM 
    应该用ExecuteNonQuery()或ExecuteReader()。
      

  5.   

    OleDbConnection myconn = new OleDbConnection();
    myconn.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\\Inetpub\\wwwroot\\zcbbs\\kefuZX\\zc-db.mdb";
    OleDbCommand myselect = new OleDbCommand();
    myselect.Connection=myconn;
    string pid;//取ProductID值放到变量里;
    myselect.CommandText="SELECT StandardPrice FROM Products where ProductID='"+pid+"'";
    Decimal StandardPrice;
    OleDbDataReader myReader=null;
    try
    {
      myconn.Open();
      myReader = myselect.ExecuteReader();
      while(myReader.Read())
      {
         StandardPrice=myReader.GetDecimal(0);
       }
    }
    catch(Exception ex)
    {
       StandardPrice=-1;
    }
    if(myReader != null) myReader.Close();
    myconn.Close();