protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            string id = "1";
            yue(id);
        }
    }
    public void yue(string key)
    {
        string sqlstring = "select * from jiankang_biao where Id='" +Convert.ToInt64( key) + "'";
        DataSet ds = sqlcon.getds(sqlstring);
        DataTable dt = ds.Tables[0];
        Label_title.Text = dt.Rows[0]["Title"].ToString();
        Label_time.Text = dt.Rows[0]["Time"].ToString();
        long count = Convert.ToInt64(dt.Rows[0]["Count"].ToString());//提取数据库的阅读次数
        long newcount = count + 1;
        Label_count.Text = newcount.ToString();
        Label_message.Text = dt.Rows[0]["Message"].ToString();
        OleDbParameter pp = new OleDbParameter("@count", OleDbType.BigInt); pp.Value = newcount;
        OleDbParameter pp1 = new OleDbParameter("@id", OleDbType.BigInt); pp1.Value = Convert.ToInt64(key);
        OleDbParameter[] pa = new OleDbParameter[] { pp, pp1 };
        sqlcon.getexecsqlpar("update jiankang_biao set Count=@count where Id=@id", pa);//更新数据库里的阅读次数
    }老是这样提示
“/WebSite”应用程序中的服务器错误。
--------------------------------------------------------------------------------标准表达式中数据类型不匹配。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.OleDb.OleDbException: 标准表达式中数据类型不匹配。源错误: 
行 89:         catch (OleDbException  ex3)
行 90:         {
行 91:             throw ex3;
行 92:         }
行 93:     }
 

解决方案 »

  1.   

    string sqlstring = "select * from jiankang_biao where [Id]=" +Convert.ToInt64( key) + "";
      

  2.   

     protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                string id = Request.QueryString["value"].ToString();
                yue(id);
            }
        }
        public void yue(string key)
        {
            string sqlstring = "select * from jiankang_biao where Id='" +key+ "'";
            DataSet ds = sqlcon.getds(sqlstring);
            DataTable dt = ds.Tables[0];
            Label_title.Text = dt.Rows[0]["Title"].ToString();
            Label_time.Text = dt.Rows[0]["Time"].ToString();
            int  count = Convert.ToInt32(dt.Rows[0]["Count"].ToString());//提取数据库的阅读次数
            int newcount = count + 1;
            Label_count.Text = newcount.ToString();
            Label_message.Text = dt.Rows[0]["Message"].ToString();
            OleDbParameter pp = new OleDbParameter("@count", OleDbType.Integer); pp.Value = newcount;
            OleDbParameter pp1 = new OleDbParameter("@id", OleDbType.Integer); pp1.Value = Convert.ToInt32(key);
            OleDbParameter[] pa = new OleDbParameter[] { pp, pp1 };
            sqlcon.getexecsqlpar("update jiankang_biao set Count=@count where Id=@id", pa);//更新数据库里的阅读次数
        }代码是这样了老是说类型错误啊!!  access数据库里面字段Id的类型是数字
      

  3.   

    string sqlstring = "select * from jiankang_biao where Id='" +Convert.ToInt64( key) + "'";
    这个最好用 stringbuilder  
     根据上边的语句看出ID应该是 string 
    但 
    OleDbParameter pp = new OleDbParameter("@count", OleDbType.BigInt); pp.Value = newcount;
    OleDbParameter pp1 = new OleDbParameter("@id", OleDbType.BigInt); pp1.Value = Convert.ToInt64(key);
    OleDbParameter[] pa = new OleDbParameter[] { pp, pp1 };
    sqlcon.getexecsqlpar("update jiankang_biao set Count=@count where Id=@id", pa);//更新数据库里的阅读次数红色部分的参数是 OleDbType.BigInt 类型的
      

  4.   

    把单引号去掉:
    string sqlstring = "select * from jiankang_biao where Id=" +Convert.ToInt64( key);