最近刚学习了三层架构 ,在网上找了一个范例学习,在项目应用中遇到两个问题向大家请教:
我参考的范例:http://www.cnblogs.com/cresuccess/archive/2008/12/10/1351675.html1. 通用查询问题
如何实现通用的查询,针对各数据库表,不同的字段,不同的查询条件。
如:
select * from tab where name='张三' and sex='男' and birthday between date1 and date2 or .....2. 表与表的关联
表与表之间多数是通过ID进行关联的,如何能快速取得另一个表中的信息。
如:table1: bid,name
table2: sid,bid,name在操作table2的model时,如何更快捷地取得table1的name,只操作一个model.不知道有没表达清楚我的意思,最好能提供相应的案例,谢谢。
我参考的范例:http://www.cnblogs.com/cresuccess/archive/2008/12/10/1351675.html1. 通用查询问题
如何实现通用的查询,针对各数据库表,不同的字段,不同的查询条件。
如:
select * from tab where name='张三' and sex='男' and birthday between date1 and date2 or .....2. 表与表的关联
表与表之间多数是通过ID进行关联的,如何能快速取得另一个表中的信息。
如:table1: bid,name
table2: sid,bid,name在操作table2的model时,如何更快捷地取得table1的name,只操作一个model.不知道有没表达清楚我的意思,最好能提供相应的案例,谢谢。
解决方案 »
- 大图片显示处理问题
- 怎样取得AccessDataSource或ListBox的记录条数?
- 还是关于webchart的问题。我就不信这么好的东西没有人用。我出高分求助。如果能解决我出500分。
- SelectedIndex 和SelectedValue 属性互相排斥 ??
- MSSQL里float数据类型显示不正确
- 关于asp.net应用程序登录与活动目录关联的问题
- 用Global.asax文件实现Url重写
- 安装VS2003后在浏览器输入网址出现“Service Unavailable”
- 如何在一个页面中操作另一个页面的控件,解决散大分!!
- 与volitant就弹出对话框控件切磋一哈
- 获取Mp3文件信息
- vs2010中创建类没有智能提示,如何设置类文件的属性?
而如果在业务层写死sql语句方式,虽然“性能可以保持很高”,但初期编程很容易发生数据架构的变更,系统一大,往往把各个模块的程序员整的手忙脚乱,难免出差错。
表与表之间多数是通过ID进行关联的,如何能快速取得另一个表中的信息。这完全属于sql的知识,和三层架构没什么关系
拼接一下SQL就可以了 参考
/// <summary>
/// 根据日期,资源名称,资源描述查询资源信息
/// </summary>
/// <returns></returns>
public DataSet FN_SerchByDateAndType(Guid FolderId, NRModel.File model, string createdate, string endate)
{
string strSql = "select * from t_File where 1 =1 and FolderId=@FolderId";
string strWhere = "";
if (!string.IsNullOrEmpty(model.FileNam))
{
strWhere += " and FileNam like @FileNam";
}
//if (!string.IsNullOrEmpty(model.Decription)k)
//{
// strWhere += " and Decription like @Decription";
//}
if (!string.IsNullOrEmpty(createdate) || !string.IsNullOrEmpty(endate))
{
strWhere += " and CreateOn between @createdate and @endate order by ModefyOn desc";
}
strSql += strWhere;
SqlParameter[] parameters = {
new SqlParameter("@FolderId", SqlDbType.UniqueIdentifier),
new SqlParameter("@FileNam", SqlDbType.NVarChar, 256),
new SqlParameter("@createdate", SqlDbType.NVarChar),
new SqlParameter("@endate", SqlDbType.NVarChar)
};
parameters[0].Value = FolderId;
parameters[1].Value = "%" + model.FileNam + "%";
//parameters[1].Value = "%" + model.Decription + "%";
parameters[2].Value = createdate;
parameters[3].Value = endate;
return DbHelperSQL.Query(strSql, parameters);
//SqlParameter[] parameters = new SqlParameter[4];
//parameters[0] = new SqlParameter("@FileNam", model.FileNam);
//parameters[1] = new SqlParameter("@stardate", createdate);
//parameters[2] = new SqlParameter("@enddate", endate);
////执行存储过程
//return DbHelperSQL.RunProcedure("P_UserSerch", parameters, "t_File");
}第2个问题属于SQL问题在DAL层拼接好SQL语句就可以了.select 表1.字段,表2.字段from 表1,表2 where 表1.ID=表2.ID 差不多就是这个意思