好像只有ms sql server支持,你可以用"?"

解决方案 »

  1.   

    我就是用的这种方式,ACCESS数据库,怎么更新和写入的时候都支持啊??
      

  2.   

    这是存储方式,是大型数据库用的
    access是不能用的
      

  3.   

    我晕~~~~@aaa这样的变量方式,access连这个也不支持呀?那要写个兼容两种数据库的程序也太累了吧?我可真的不想直接插进去,效率低不说,不安全呀!
      

  4.   

    能用的
    数据库访问主要有两种方式,第一种是普遍的sql语句访问。第二种是“存储过程”,一般是大型数据库如sql server才用。
    所以在访问access时只能用sql方式访问,但使用@aaa作为参数是可以的,而且这样很好,避免了书写sql语句时单引号和双引号带来的麻烦。
    例如这样:aaa="yebe";
    OleDbConnection Conn = new OleDbConnection(strConn);
    string strSQL = "SELECT id FROM [user] WHERE aaa = @aaa";
    Conn.Open();
    OleDbCommand Cmd = new OleDbCommand(strSQL, Conn);
    Cmd.Parameters.Add(new OleDbParameter("@aaa", OleDbType.Char, 20)).Value = aaa;
    OleDbDataReader Rd = Cmd.ExecuteReader();
      

  5.   

    sql访问是肯定的了,主要想知道的是@aaa这样的方式,能否在ado.net这个层面上解决,不然access不支持就麻烦了
      

  6.   

    ?是什么?
    ///////string strSQL = "SELECT id FROM [user] WHERE aaa = @aaa";在OleDb中要用?代替@aaa
      

  7.   

    用?号
    比如string strSQL = "SELECT id FROM [user] WHERE aaa = ?aaa";
    这样吗?
      

  8.   

    我试过用@aaa不会出错,但你添加参数要按@aaa出现的顺序来参加,所以跟用?一样
    比如SELECT id FROM [user] WHERE aaa = @aaa and bbb=@bbb
    你要先添加@aaa,再添加@bbb
    用?号就是这样
    SELECT id FROM [user] WHERE aaa = ? and bbb=?
      

  9.   

    不按顺序会出错吗?sql server里不需要按顺序的
      

  10.   

    我晕 我一直都是这样用的!只是注意,参数的添加顺序一定要按照 SQL语句里面的参数顺序
      

  11.   

    string strSQL = "SELECT id FROM [user] WHERE aaa = ?";不按顺序会出错的ado.net支持两种参数,命名参数和位置参数。
    sqlclient使用的是命名参数,也就是@aaa.
    oledbclient使用的是位置参数,也就是?
      

  12.   

    用?号
    比如string strSQL = "SELECT id FROM [user] WHERE aaa = ?aaa";
    这样吗?//////////////////string strSQL = "SELECT id FROM [user] WHERE aaa = ?";
    Conn.Open();
    OleDbCommand Cmd = new OleDbCommand(strSQL, Conn);
    Cmd.Parameters.Add(new OleDbParameter("@aaa", OleDbType.Char, 20)).Value = aaa;
    OleDbDataReader Rd = Cmd.ExecuteReader();
      

  13.   

    access可以用@aaa的OldDbParameter我一直這樣用的
      

  14.   

    泣不成声啊我干脆我在数据访问那做点手脚把@全部换成进来的数据再丢给ADO算了,可能简单些,总比管顺序强些