簡體   English   中英

SQL查詢在Asmx Web服務中不起作用

[英]SQL Query doesn't work in asmx web service

我制作了asmx網站,以便從oracle數據庫中獲取數據。 當我使用簡短查詢時,它工作正常:

select * from dbrepn10.DDT_DA_DIRECTION_SV

但是,如果我使用像這樣的長查詢:

SELECT XB_.R_OBJECT_ID, XB_.OBJECT_NAME, XB_.R_CREATION_DATE, XB_.R_MODIFY_DATE, XB_.R_MODIFIER, XB_.R_ACCESS_DATE, XB_.A_CONTENT_TYPE, 
    XB_.R_CONTENT_SIZE, XB_.OWNER_NAME, XB_.ACL_DOMAIN, XB_.ACL_NAME, XB_.R_CREATOR_NAME, BKB_.DSI_PAGE_COUNT, EKB_.DSS_REG_NUMBER, EKB_.DST_REG_DATE, EKB_.DSS_OBJECT_NAME_RU, MKB_.DSS_TITLE_RU, MKB_.DSS_TITLE_KK 
FROM dbrep36.DM_SYSOBJECT_S XB_, dbrep36.DDT_EAR_S BKB_, dbrep36.DDT_EAR_REG_S EKB_,dbrep36.DDT_DA_DIRECTION_S MKB_ 
WHERE (XB_.R_OBJECT_ID=MKB_.R_OBJECT_ID AND (XB_.R_OBJECT_ID=BKB_.R_OBJECT_ID AND (BKB_.R_OBJECT_ID=MKB_.R_OBJECT_ID AND (XB_.R_OBJECT_ID=EKB_.R_OBJECT_ID AND(BKB_.R_OBJECT_ID=EKB_.R_OBJECT_ID AND EKB_.R_OBJECT_ID=MKB_.R_OBJECT_ID)))))

我的Web服務未返回結果。 並且沒有錯誤消息。

可能是什么原因 ?

碼:

 public DataTable GetSpecificView(string query_string)
    {
        string host = WebConfigurationManager.AppSettings["host"].ToString();
        string port = WebConfigurationManager.AppSettings["port"].ToString();
        string servicename = WebConfigurationManager.AppSettings["servicename"].ToString();
        string user = WebConfigurationManager.AppSettings["user"].ToString();
        string password = WebConfigurationManager.AppSettings["password"].ToString();

        DataTable data = new DataTable();

        string connectionString = OracleConnString(host, port, servicename, user, password);
        OracleConnection con = new OracleConnection(connectionString);
        con.ConnectionString = connectionString;
        string result = "";
        try
        {
            con.Open();
            OracleCommand cmd = new OracleCommand(query_string, con);

            DataSet dataSet = new DataSet();
            new OracleDataAdapter(cmd).Fill(dataSet);
            if (dataSet.Tables.Count > 0)
            {
                data = dataSet.Tables[0];
            }
            con.Close();

        }
        catch (Exception ex)
        {
            result = ex.Message;
        }
        return data;
    }

您確定您沒有例外嗎? 您的catch循環沒有執行任何操作,只是將異常消息分配給一個似乎沒有記錄在任何地方的字符串。

另外,您應該將con.Close()調用放置在finally塊中,因為如果引發異常,則不會調用它。

您是否嘗試過在數據庫上正確運行SQL查詢以確保它確實有效?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM