四、数据库调用
4.1 Dao类中的方法
4.1.1新增数据写法
新增一个人员,传入数据为:人员姓名,所属机构key;返回新增人员后的key。
/// <summary>
/// 新建人员,返回key
/// </summary>
/// <returns></returns>
public decimal CreatPersonForPersonName(String personName, decimal unitKey)
{
return AdoTemplate.Execute<decimal>
(
delegate(IDbDataAdapter dataAdapter)
{
if (dataAdapter is OracleDataAdapter)
{
OracleCommand commandToUse = (dataAdapter.SelectCommand as OracleCommand);
commandToUse.CommandText = CommandSQL.CreatPersonForPersonName;
commandToUse.BindByName = true;
commandToUse.Parameters.Add(":PERSON_NAME", OracleDbType.NVarchar2, ParameterDirection.Input).Value = personName;
commandToUse.Parameters.Add(":UNIT_KEY", OracleDbType.Decimal, ParameterDirection.Input).Value = unitKey;
commandToUse.Parameters.Add(":PERSON_KEY", OracleDbType.Decimal, ParameterDirection.Output);
if (commandToUse.ExecuteNonQuery() != 1)
{
throw new Exception("Dao内部出现错误");
}
return commandToUse.Parameters[":PERSON_KEY"].Value.ToDecimal(); ;
}
else
{
throw new Exception("Dao内部出现错误");
}
}
);
}
/* Formatted on 2010-5-20 11:22:02 (QP5 v5.114.809.3010) */
INSERT INTO PERSON_TBL PT (PT.PERSON_KEY,
PT.PERSON_NAME,
PT.PERSON_STATE,
PT.UNIT_KEY)
VALUES (GLOBAL_SEQUENCE.NEXTVAL,
:PERSON_NAME,
1,
:UNIT_KEY)
RETURNING PT.PERSON_KEY INTO :PERSON_KEY
4.1.2查询数据写法
/// <summary>
/// 得到person对象,根据key
/// </summary>
/// <param name="personKey"></param>
/// <returns></returns>
public Person GetPersonForPersonKey(decimal personKey)
{
DataTable dataTable = AdoTemplate.Execute<DataTable>
(
delegate(IDbDataAdapter dataAdapter)
{
if (dataAdapter is OracleDataAdapter)
{
OracleCommand commandToUse = (dataAdapter.SelectCommand as OracleCommand);
commandToUse.CommandText = CommandSQL.GetPersonForPersonKey;
commandToUse.BindByName = true;
commandToUse.Parameters.Add(":PERSON_KEY", OracleDbType.Decimal, ParameterDirection.Input).Value = personKey;
DataSet dataSet = new DataSet();
dataAdapter.Fill(dataSet);
return dataSet.Tables[0];
}
else
{
throw new Exception("Dao内部出现错误");
}
}
);
return (from dataRow in dataTable.AsEnumerable()
select new Person
{
PersonKey = dataRow.Field<decimal?>("PERSON_KEY"),
PersonName = dataRow.Field<string>("PERSON_NAME").toNullString(),
PersonNickname = dataRow.Field<string>("PERSON_NICKNAME").toNullString(),
PersonPhoto = dataRow.Field<byte[]>("PERSON_PHOTO").Base64Encode(),
PersonState = dataRow.Field<decimal?>("PERSON_STATE"),
UnitKey = dataRow.Field<decimal?>("UNIT_KEY"),
}).FirstOrDefault();
}
/* Formatted on 2010-5-24 16:53:30 (QP5 v5.114.809.3010) */
SELECT PT.PERSON_KEY,
PT.PERSON_NAME,
PT.PERSON_NICKNAME,
PT.PERSON_PHOTO,
PT.PERSON_STATE,
PT.UNIT_KEY
FROM PERSON_TBL PT
WHERE PT.PERSON_KEY = :PERSON_KEY
4.1.3修改数据写法
/// <summary>
/// 更新用户基本信息
/// </summary>
/// <param name="personKey"></param>
/// <param name="personName"></param>
/// <param name="personNickname"></param>
/// <param name="personState"></param>
/// <param name="personPhoto"></param>
/// <param name="unitKey"></param>
/// <returns></returns>
public Boolean UpdatePersonForPersonKey(decimal personKey, String personName, String personNickname, decimal? personState, byte[] personPhoto, decimal? unitKey)
{
return AdoTemplate.Execute<Boolean>
(
delegate(IDbDataAdapter dataAdapter)
{
if (dataAdapter is OracleDataAdapter)
{
OracleCommand commandToUse = (dataAdapter.SelectCommand as OracleCommand);
commandToUse.CommandText = CommandSQL.UpdatePersonForKey;
commandToUse.BindByName = true;
commandToUse.Parameters.Add(":PERSON_KEY", OracleDbType.Decimal, ParameterDirection.Input).Value = personKey;
commandToUse.Parameters.Add(":PERSON_NAME", OracleDbType.NVarchar2, ParameterDirection.Input).Value = personName;
commandToUse.Parameters.Add(":PERSON_NICKNAME", OracleDbType.NVarchar2, ParameterDirection.Input).Value = personNickname;
commandToUse.Parameters.Add(":PERSON_STATE", OracleDbType.Decimal, ParameterDirection.Input).Value = personState;
commandToUse.Parameters.Add(":PERSON_PHOTO", OracleDbType.Blob, ParameterDirection.Input).Value = personPhoto;
commandToUse.Parameters.Add(":UNIT_KEY", OracleDbType.Decimal, ParameterDirection.Input).Value = unitKey;
if (commandToUse.ExecuteNonQuery() != 1)
{
throw new Exception("Dao内部出现错误");
}
return true;
}
else
{
throw new Exception("Dao内部出现错误");
}
}
);
}
/* Formatted on 2010-5-6 13:28:26 (QP5 v5.114.809.3010) */
UPDATE PERSON_TBL PT
SET PT.PERSON_NAME = :PERSON_NAME,
PT.PERSON_NICKNAME = :PERSON_NICKNAME,
PT.PERSON_STATE = :PERSON_STATE,
PT.PERSON_PHOTO = :PERSON_PHOTO,
PT.UNIT_KEY = :UNIT_KEY
WHERE PT.PERSON_KEY = :PERSON_KEY
4.1.4删除数据写法
public Boolean DeleteUserForPersonKey(decimal personKey)
{
return AdoTemplate.Execute<Boolean>
(
delegate(IDbDataAdapter dataAdapter)
{
if (dataAdapter is OracleDataAdapter)
{
OracleCommand commandToUse = (dataAdapter.SelectCommand as OracleCommand);
commandToUse.CommandText = CommandSQL.DeleteUserForPersonKey;
commandToUse.BindByName = true;
commandToUse.Parameters.Add(":PERSON_KEY", OracleDbType.Decimal, ParameterDirection.Input).Value = personKey;
if (commandToUse.ExecuteNonQuery() != 1)
{
throw new Exception("Dao内部出现错误");
}
return true;
}
else
{
throw new Exception("Dao内部出现错误");
}
}
);
}
DELETE USER_TBL UT
WHERE UT.PERSON_KEY = :PERSON_KEY
分享到:
相关推荐
搭建Flex+FluorineFx+ASP.NET的整合开发环境是一项技术性的工作,涉及多个关键组件的安装和配置。以下是一步步的详细说明: 一、安装软件与配置 1. **MyEclipse 6.0.1**:这是一款集成开发环境(IDE),用于Java、...
搭建Flex+FluorineFx+ASP.NET是一个过程,用于创建富互联网应用程序(RIA),它结合了Adobe Flex的用户界面构建能力、FluorineFx的AMF通信库以及ASP.NET后端服务来实现高效的数据交换。以下是详细的步骤: 一、安装...
在本文中,我们将一起学习如何搭建一个基于Flex、FluorineFx和ASP.NET的开发环境,以及创建一个简单的项目。Flex是Adobe开发的RIA(Rich Internet Application)框架,用于构建富交互式前端应用;FluorineFx是.NET...
这个“Flex+.Net+Cairngorm+Fluorine的HelloWorld演示”旨在帮助开发者理解如何将这些技术整合在一起,实现跨平台的通信,并掌握Cairngorm框架的应用。 Flex 是一种基于ActionScript和MXML的开源框架,由Adobe提供...
综上所述,"flex+fluorinefx access交互测试"涵盖了从客户端UI设计到服务器端数据库操作的全过程,对于初学者而言,这是一个很好的入门教程,能帮助他们掌握Flex与.NET服务之间的数据交换,以及如何与ACCESS数据库...
1. **安装FluorineFx**: 首先,需要在ASP.NET项目中添加FluorineFx库,可以通过NuGet或其他下载方式获取并安装。 2. **配置FluorineFx**: 在Web.config文件中配置FluorineFx,包括设置Remoting服务端点、AMF通道等...
标题中的“在线拍照 c# flex+fluorineFx+webservices”揭示了这是一个基于C#技术,使用Flex前端和FluorineFx作为SOAP Web服务客户端库的在线拍照系统。让我们详细了解一下这些关键技术点。 **C#(Sharp)**: C#是...
标题中的“Flex(PureMVC) asp.net FluorineFx操作数据库”表明这是一个关于使用Adobe Flex(一种基于ActionScript的前端开发框架)与后端ASP.NET通过FluorineFx进行数据交互并操作数据库的项目。以下是相关知识点的...
Flex 4、ASP.NET 和 FluorineFX 是用于构建富互联网应用程序(RIA)的强大技术组合。在本教程中,我们将探讨如何使用Visual Studio 2010(VS2010)作为集成开发环境(IDE),结合FluorineFX这一开源的Adobe Flex到...
开发的时候,只需要将5个dll导入就可以了,安装程序是从官网上下载的FluorineFx.net安装程序,版号是1.0.0.15。 导入5个dll之后,就可以用c#按照官网上的教程进行rtmp协议进行通信了,不过教程上对于rtmp协议的用法...
FluorineFx.NET RTMP服务端是一款专为.NET开发者设计的开源RTMP服务器软件,它使得在.NET平台上构建实时媒体流应用变得简单易行。RTMP(Real-Time Messaging Protocol)是一种广泛应用于在线流媒体传输的技术,常...
3. **配置FluorineFx**:在ASP.NET项目中添加FluorineFx的相关配置,包括设置AMF端点和启用服务。 4. **创建ASP.NET Web服务**:编写C#或VB.NET的Web服务类,实现对应的服务接口,处理数据操作。 5. **连接数据库*...
FluorineFx是.NET平台上一个开源的Adobe Flash Remoting实现,它允许C#开发者与Flash客户端进行双向通信,使得Flex、Flash等基于ActionScript的应用能够无缝地与服务器端的.NET服务交互。在这个"FluorineFx C#搭建...
2. 在.NET项目中配置FluorineFx,定义要暴露给Flex的远程服务。 3. 创建Flex应用,并设置相应的Remoting配置,指定服务器地址和要调用的服务。 4. 在ActionScript代码中,通过RemoteObject或WebService组件调用.NET...
FluorineFX 是一款强大的 .NET 与 Adobe Flex 之间的集成框架,它允许开发者使用 Flex 客户端与 ASP.NET 服务器端进行交互,实现数据的动态交换和远程调用服务(RPC)。在这个示例中,我们将探讨如何利用 FluorineFX...
在项目中,ASP.NET类通常是公开的业务逻辑层(BLL)或数据访问层(DAL),它们处理Flex客户端发送的请求,执行相应的操作,如数据库查询、业务逻辑计算等,然后将结果返回给客户端。这些类需要使用FluorineFX提供的...
通过研究和理解这个FluorineFx+.NET视频聊天室源码,开发者不仅可以学习到如何利用FluorineFx搭建服务器和客户端通信,还能掌握实时音视频处理、多用户同步和网络编程等相关技能。对于想要深入.NET与Flash集成,或者...
FluorineFx是.NET平台上一个流行的开源库,它提供了Flex和.NET之间的集成,使得开发人员可以使用ActionScript和Flex来调用.NET服务,实现客户端和服务器端的交互。本实例代码涵盖了Flex与.NET互操作的多个方面,包括...