oleDbCmd.Parameters.Add(["@Find",value)

解决方案 »

  1.   

    oleDbCmd.Parameters.Add("@Find",value)不好意思多了个[
      

  2.   

    string sql = "SELECT * FROM Table1 WHERE Field1 LIKE ?";    //用问号占位,表示参数
    OleDbCommand cmd = new OleDbCommand(sql, oracleConn);
    cmd.Parameters.Add("@p1", OleDbType.Char, 3).Value = "a";
    OleDbDataReader dr = cmd.ExecuteReader();
      

  3.   

    我看你的写法,应该是连接Sql Server的,那么还是用SqlClient好,性能上比OleDb好。如果用SqlClient的话,就直接在Command中写"select * from table where id = @param_name"
      

  4.   

    我没有试SqlClient。
    其他方法都不行啊
      

  5.   

    OleDbCommand中不支持命名参数,只能用占位符"?"
      

  6.   

    To :tonybaobao
    使用?和@Pl的方法抛出异常说@pl附近有语法错误。
      

  7.   

    好了
    使用?就行
    OleDbCommand不支持命名参数吗?
    根据我测试的结果,参数好象必须按严格的顺序放进Parameters中。
      

  8.   

    oleDbCmd.Parameters.Add("@Find",value),一个@代表一个参数,而且传递的参数是按照Paramaters Collection中 的顺序传递,
      

  9.   

    to  norikos(zhulgxg) :没错,使用?就行。不过顺序不能错的,很显然是因为他没办法确认是哪个参数,所以只能用顺序来确认了。to feigehao(gaosou) :你这个方法只能用在SqlClient中,OleDb不行。
      

  10.   

    弄清数据库是SQL还是OleDb.在OleDb中要使用占位符?