if (dt != null && dt.Rows.Count > 0)
                {
                    foreach (DataRow dr in dt.Rows)
                    {
                        getid += "'" + dr["TypeID"] + "',";
                    }
                }
                getid = getid.Remove(getid.LastIndexOf(","), 1);
                return getid;
 
以上就是方法的核心代码,调用存储过程传参数,这个执行,查询没有数据,如果在调试的时候把这个返回的字符串直接写入存储过程参数位置 查询就有数据,不晓得为什么 谁晓得

解决方案 »

  1.   

    你这段Java代码能返回正常的字符串吗?能的话你发它有什么用?发个正确代码,让人猜你错误代码?
      

  2.   

    db.AddParam("TypeID", GetCustomerTypeid("1"));//下面的方法
                    db.AddParam("dt", OracleType.Cursor, ParameterDirection.Output);
                    DataTable dtCount = db.ExecuteDataTable("Report_Package_excel.USP_GetRecordByPage", CommandType.StoredProcedure);
    //c#调用存储过程public string GetCustomerTypeid(string id)
            {
                string getid = "";
                string sql = @"select TypeID from SEARCHCONFIGRELATION WHERE ConfigID=:ConfigID";
                using (Database db = DatabaseFactory.CreateDatabase())
                {
                    db.ClearParam();
                    db.AddParam(":ConfigID", id);
                    DataTable dt = db.ExecuteDataTable(sql, CommandType.Text);
                    if (dt != null && dt.Rows.Count > 0)
                    {
                        foreach (DataRow dr in dt.Rows)
                        {
                            getid += "'" + dr["TypeID"] + "',";
                        }
                    }
                    getid = getid.Remove(getid.LastIndexOf(","), 1);
                    return "("+getid+")";
                }
            }
      

  3.   

    写个insert语句 往自己的log表里写记录总可以吧