博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
项目总结
阅读量:5208 次
发布时间:2019-06-14

本文共 2155 字,大约阅读时间需要 7 分钟。

项目:代理商注册系统...
  采用三层架构...用vs2005+ms2005开发。
  数据比较简单..建二个表,agentinformation和unauditedagentinformation,分别存放已经审核通过的用户和未审核的用户数据。
本项目中值得总结的地方有:
1. 序列化存储数据。
    对于未审核的用户数据,先将数据序列化然后存入。所以unauditedagentinformation仅三个字段,一个存放序列化数据,一个存放用户名,还有一个标识用来判断用户的请求是否被驳回。
两个转化过程:
 实例序列化:
 System.Runtime.Serialization.Formatters.Binary.BinaryFormatter formatter 
=
 
new
 System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
      System.IO.MemoryStream stream 
=
 
new
 System.IO.MemoryStream();
      formatter.Serialize( stream, agentData );
  反序列化为实例:
 AgentData agentData;
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter formatter 
=
 
new
 System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
        
byte
[] data 
=
 (
byte
[]) DbUtility.ExecuteScalar( 
"
Select unauditedAgentData From UnauditedAgentInfomation Where userName={0}
"
, userName );
        
if
 ( data 
==
 
null
 ) 
return null; }
        agentData 
=
 (AgentData) formatter.Deserialize( 
new
 System.IO.MemoryStream( data ) );
//
返回一个实例
          
return
 agentData;
2.数据实例化
建立一个实例..这样取数据还是写入数据都比较方便。
public
 
static
 EmployeeData GetEmployeeData( 
int
 EmployeeId )
    
{
      DataRow data 
= DbUtility.ExecuteSingleRow( "SELECT * FROM EmployeeInformation WHERE ID={0}", EmployeeId );
      
if ( data == null )
        
return null;
      
else
        
return ParseData( data );
    }
    
/// <summary>
    
/// 解析代理商数据
    
/// </summary>
    
/// <param name="requestData">包含数据的NameValueCollection</param>
    
/// <returns></returns>
    
public
 
static
 EmployeeData ParseData( NameValueCollection requestData )
    
{
      
if ( requestData == null )
        
return null;
      EmployeeData instance 
= new EmployeeData();
      ObjectDataParser.ParseData
<NameValueCollection>( requestData, instance, ObjectDataParser.GetFieldData_Request );
      
return instance;
    }
    
/// <summary>
    
/// 解析代理商数据
    
/// </summary>
    
/// <param name="data">包含数据的DataRow</param>
    
/// <returns></returns>
    
public
 
static
 EmployeeData ParseData( DataRow data )
    
{
      
if ( data == null )
        
return null;
      EmployeeData instance 
= new EmployeeData();
      ObjectDataParser.ParseData
<DataRow>( data, instance, ObjectDataParser.GetFieldData_DataRow );
      
return instance;
    }
利用两种方式来解析数据。
以上这两个总结点都是我第一次接触。因此小结一下。
当然,除了上面这两点,对逻辑层和数据层的分工也有了更明确的认识。对界面的优化也获益甚多。

转载于:https://www.cnblogs.com/baiduligang/p/4247337.html

你可能感兴趣的文章
RBAC权限设计实例
查看>>
Microsoft.Web.RedisSessionStateProvider 运行异常问题
查看>>
处理Android键盘覆盖input和textarea框的问题
查看>>
面向对象基础
查看>>
【BZOJ1956】[Ahoi2005]SHUFFLE 洗牌
查看>>
SQL/T-SQL实例参考-2
查看>>
一些技术以外的面试题
查看>>
Android - N级树形结构实现
查看>>
MDSF:软件工厂(Software factory)介绍
查看>>
连接查询
查看>>
NopCommerce学习(2) EntityFramework
查看>>
IT知识学习链接
查看>>
元编程艺术,第 1 部分: 元编程简介
查看>>
yield return的作用
查看>>
Rose与UML类图关系与生成代码剖析
查看>>
面试题6:从尾到头打印链表
查看>>
303. Range Sum Query - Immutable
查看>>
计算某天在此一年中的天数
查看>>
导航平滑滚动到页面某个锚点
查看>>
Remote Desktop安卓软件实现手机远程控制电脑
查看>>