日期:2014-05-17  浏览次数:21022 次

ORA-00936: 缺少表达式
用OleDb连接ORACLE数据库时,查询代码
string sql = @"SELECT * FROM DBCENTERUSER WHERE USERNAME = @UserName ";
OleDbParameter parameter = new OleDbParameter("@UserName",userName);
OleDbDataReader dataReader = DBSQLHelper.ExecuteReader(sql, parameter);

其中,ExecuteReader为
public static OleDbDataReader ExecuteReader(string sql, OleDbParameter value)
{
    OleDbCommand cmd = new OleDbCommand(sql, Connection);
    cmd.Parameters.Add(value);
    OleDbDataReader reader = cmd.ExecuteReader();
    return reader;
}

执行到OleDbDataReader reader = cmd.ExecuteReader(),报ORA-00936: 缺少表达式错误
奇怪的是,当我把上面的参数@UserName直接换成值时就不会报错了
求大神指教

------解决方案--------------------
你调试的时候把整个sql都copy出来,放到数据库执行下,看会不会报错