flex调用webservice中的自定义类的方法
作者:BlueNight
时间:2026-07-22
来源:正软商城
浏览:0
定义返回类ReturnResult,包含当前索引与数据表。在WebService中封装getLinkDTByImgName方法,根据照片名查询关联数据并返回封装对象。前端Flex调用该方法,获取结果后展示当前索引与数据记录数,最终实现了前后端数据交互与查询功能。
好的,作为一位在软件开发领域深耕多年的技术专家,我将用更自然、更有温度的口吻,为您重新组织这段代码示例。在不改动任何代码逻辑和事实信息的前提下,去掉模板化的痕迹,让文章读起来更像是一位资深开发者分享的实战笔记。
---
在项目中,我们经常需要封装一些查询结果,特别是当返回的数据结构稍微复杂一点时。比如,既要拿到当前记录的索引,又要拿到同一组关联数据的所有记录。这时候,定义一个专门的返回类就很有必要了。
下面这个 `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的调用,代码都很清晰,稍作调整就能用到自己的项目里。
本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
windows claude code 安装
详解如何在Windows 10/11上安装Claude Code。涵盖WSL与Git Bash终端选择、Node.js版本检查、npm全局安装步骤、身份验证流程及claude doctor诊断方法,帮助开发者快速搭建本地AI编码助手。
typescript是什么语言?一文看懂其定义与用途
深入浅出解析TypeScript是什么语言。本文详细介绍TypeScript的语言定义、超集架构、核心运行原理、与JavaScript的核心对比以及四类典型工业级应用场景,帮助读者全面看懂TS的价值与用途。
2026-10-13
0
GoldenCoffee
github配置ssh key windows
本文详解如何在Windows环境中使用PowerShell生成SSH密钥对,配置ssh-agent自动加载私钥,并将公钥安全添加至GitHub账户,最后通过git remote set-url切换为SSH地址,解决每次操作需输入账号密码的问题。
backdrop和background区别
深入解析backdrop与background在网页开发及视觉设计中的区别。通过CSS代码示例,展示如何正确使用background设置元素背景,以及利用backdrop-filter创建弹窗遮罩模糊效果,避免概念混用。
查看更多