商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > flex调用webservice中的自定义类的方法

flex调用webservice中的自定义类的方法

  发布于2026-07-22 阅读(0)

扫一扫,手机访问

好的,作为一位在软件开发领域深耕多年的技术专家,我将用更自然、更有温度的口吻,为您重新组织这段代码示例。在不改动任何代码逻辑和事实信息的前提下,去掉模板化的痕迹,让文章读起来更像是一位资深开发者分享的实战笔记。 --- 在项目中,我们经常需要封装一些查询结果,特别是当返回的数据结构稍微复杂一点时。比如,既要拿到当前记录的索引,又要拿到同一组关联数据的所有记录。这时候,定义一个专门的返回类就很有必要了。 下面这个 `ReturnResult` 类,就是一个典型的例子。它包含了两个字段:`curIndex` 用来存放当前索引,`idxList` 用来存放一个数据表。这样,一次调用就能把需要的信息全带回来。 ```csharp public class ReturnResult { public int curIndex { get; set; } public DataTable idxList { get; set; } } ``` 有了这个基础,接下来就是测试数据库连接。很多新手在配置连接字符串时容易出问题,所以写一个专门的连接测试函数非常实用。下面的 `conectDB()` 方法直接从 `web.config` 里读取连接字符串,尝试打开连接,成功则返回 `true`,失败则返回 `false`,最后别忘了关闭连接。这是一个非常标准的做法。 ```csharp //测试数据库连接 [WebMethod(Description = "!!!测试数据库连接,链接字符串在web.config中")] public bool conectDB() { strCon = ConfigurationSettings.AppSettings["sqlConDuke"]; conn = new SqlConnection(strCon); try { conn.Open(); return true; } catch (Exception) { return false; } finally { conn.Close(); } } ``` 接下来是两个核心的WebMethod,它们都基于照片名来查询数据。第一个方法 `getInfoByImgName` 很简单,就是根据传入的表名和图片名,用 `LIKE` 模糊查询返回对应的数据表。 ```csharp [WebMethod(Description = "根据 照片名 获得详细数据(DataTable),strTb,eg:PanView;strImgName,eg:20131019072740-0000150")] public DataTable getInfoByImgName(string strTb, string strImgName) { bool ifCon = conectDB(); if (ifCon) { string sql_BfCar = "SELECT * FROM dbo." + strTb + " where ImageName LIKE '%" + strImgName + "%'"; da = new SqlDataAdapter(sql_BfCar, conn); myds = new DataSet(); da.Fill(myds); return myds.Tables[0]; } else { return null; } } ``` 第二个方法 `getLinkDTByImgName` 则更有意思——它先通过照片名拿到当前记录的索引和 `LinkGuid`,然后利用这个 `LinkGuid` 再查询同一组的所有关联数据,最后把索引和数据表一起封装到 `ReturnResult` 对象里返回。这样,前端拿到数据后,不仅可以显示当前照片,还能轻松展示同一链路下的所有照片。 ```csharp [WebMethod(Description = "根据 照片名 获得所在Link的所有数据(ReturnResult),strTb,eg:PanView;strImgName,eg:20131019072740-0000150")] public ReturnResult getLinkDTByImgName(string strTb, string strImgName) { ReturnResult returnResult = new ReturnResult(); bool ifCon = conectDB(); if (ifCon) { returnResult.curIndex = Convert.ToInt32(getInfoByImgName(strTb, strImgName).Rows[0][0]); string strLinkGuid = getInfoByImgName(strTb, strImgName).Rows[0][1].ToString(); string sql_BfCar = "SELECT * FROM dbo." + strTb + " where LinkGuid LIKE '%" + strLinkGuid + "%'"; da = new SqlDataAdapter(sql_BfCar, conn); myds = new DataSet(); da.Fill(myds); returnResult.idxList = myds.Tables[0]; return returnResult; } else { return null; } } ``` 后端搞定,前端Flex这边也需要配合。下面是一个完整的Flex应用,它通过WebService调用上面那个 `getLinkDTByImgName` 方法,并在应用启动时自动执行。注意看结果处理函数 `getLinkDTByImgNameHandler`,它从返回结果里取出 `curIndex` 和 `idxList` 的表格行,然后弹出一个提示框来显示索引和记录数。这个模式在实际项目中非常常见,拿来即用。 ```xml ``` 整个流程看下来,其实就是一个非常典型的“根据某个字段查询关联数据”的实战案例。无论是后端WebMethod的封装,还是前端Flex的调用,代码都很清晰,稍作调整就能用到自己的项目里。
本文转载于:https://www.jb51.net/article/45645.htm 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注