ADO.NET中怎么进行面向对象分析?大家来说说。

subsniper 2005-02-02 04:16:24
我发现在写form中的数据访问代码时,经常把界面操作代码和数据操作代码混合起来,乱糟糟的,所以来这里请教大家,一般应该怎么分离界面操作代码和数据代码。
...全文
212 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
subsniper 2005-02-15
  • 打赏
  • 举报
回复
up
chinacc 2005-02-04
  • 打赏
  • 举报
回复
通常把数据访问的类单独放在一层。
subsniper 2005-02-04
  • 打赏
  • 举报
回复
up
噯卟釋手 2005-02-04
  • 打赏
  • 举报
回复
up
subsniper 2005-02-03
  • 打赏
  • 举报
回复
正在看...
aijing 2005-02-02
  • 打赏
  • 举报
回复
关注
曲滨_銘龘鶽 2005-02-02
  • 打赏
  • 举报
回复
//用户 界面子处理 传入参数 和 接收 数据
private void buyQuery_Click(object sender, System.EventArgs e)
{
Hashtable inHtbl = new Hashtable();
Hashtable outHtbl;
inHtbl["UserID"] = txtUser.Text;

outHtbl = DataServer.SendDBMessage("MsgGetUserInfo_001",inHtbl);

if( outHtbl["Out_MsgGetUserInfo_001"] is DataTable)
{
DataTable dt = outHtbl["Out_MsgGetUserInfo_001"] as DataTable;
dataGrid1.DataSource = dt;
}
}

/// <summary>
/// db 访问类 DB.Dll[经过修改本类可以对在本地 或 远程使用]
/// </summary>
public class DataServer
{
/// <summary>
/// 数据访问函数,根据 MsgID 调用 逻辑处理函数
/// </summary>
/// <param name="MsgID">业务消息id </param>
/// <param name="inHshTbl">传入参数,这个函数不使用负责转发</param>
/// <returns>将业务逻辑返回的数据包装到 Hashtable 中的 "Out_"+MsgID key中 </returns>
public static Hashtable SendDBMessage(String MsgID,Hashtable inHshTbl)
{
//MsgID 对应处理 代码略
//经过配置文件判断 MsgID MsgGetUserInfo_001 是对应 UserInfo.GetUserInfo 这个函数
//需要有个 配置文件 或 有个表来对应 消息id 的处理入口函数
object o = UserInfo.GetUserInfo(inHshTbl);
Hashtable ReturnVar = new Hashtable();
ReturnVar["Out_" + MsgID ] = o;
return ReturnVar;
}
}
/// <summary>
/// 用户信息处理类
/// </summary>
public class UserInfo
{
/// <summary>
/// inHshTbl 必须有 UserID key int 型
/// </summary>
/// <param name="inHshTbl"></param>
/// <returns></returns>
public static DataTable GetUserInfo(Hashtable inHshTbl)
{
DataTable ReturnVar=null;
if(inHshTbl["UserID"] is string)
{
string ExecSql = "Select * form userTable where userid=:UserID";
string userid = inHshTbl["UserID"] as string;
//调用db
//da.Fill(ReturnVar);
//ReturnVar.TableName = "USERTABLE"
}
return ReturnVar;
}
}


-------------------------------
看懂没?
liduke 2005-02-02
  • 打赏
  • 举报
回复
基础类属性反应对数据库中就是和属性对应的表啊
smilepgl 2005-02-02
  • 打赏
  • 举报
回复
怎么将一个表做成一个类
Edelweissobject 2005-02-02
  • 打赏
  • 举报
回复
建议把常用的数据库操作写成一个公共类。
subsniper 2005-02-02
  • 打赏
  • 举报
回复
youngby(诗人.cpp/.cc)(知耻而后进,师拜C++华山派(无语清风))

我的信誉分是散分散丢的,帮我BS一下CSDN吧!
jialiang 2005-02-02
  • 打赏
  • 举报
回复
up
meixiaofeng 2005-02-02
  • 打赏
  • 举报
回复
有几个原则把握好就行了:可重用,可维护,灵活
kaixin110 2005-02-02
  • 打赏
  • 举报
回复
你上面说的是window的n层解决方案吧
一般都是界面层+业务外观层+业务层+数据访问层+数据层
你最好看Microsoft的示例
他给我们将的很清楚
eg:Microsoft提供的企业级示例
那里边的数据访问很好
你要的是思想
不是代码
liulxmooo 2005-02-02
  • 打赏
  • 举报
回复
up
youngby 2005-02-02
  • 打赏
  • 举报
回复
列子太多了。

简单一点的,PETSHOP不是吗?

这方面WEBFORM还是WINFORM都是一个道理的了~

-------------
楼主的信誉好紧
LoveCherry 2005-02-02
  • 打赏
  • 举报
回复
所有表按照结构做成一个类
直接通过类的方法操作这个类而不是操作表
subsniper 2005-02-02
  • 打赏
  • 举报
回复
最好举例说明,谢谢!

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧