最近刚刚开始接触三层架构,师傅说表现层和业务逻辑层的分离比较复杂,先不要管,主要先熟悉业务逻辑层和数据访问层之间的分离.
对于一些简单的Sqlcommand,GridView的绑定这些问题,很简单的就可以实现,而且这样的操作用的比较多.
但是,对于一些比较复杂,用的次数又很少的数据库操作,需要用在类里先定义吗.
比如下面这个例子,是把数据库里的数据绑定到CheckBoxList上,只用到了一次,需要用类先定义吗?应该怎么定义?
string PK_Project = Request["PK_Project"].ToString();
con.Open();
string sqlstrGet = "select FlowName from ProjectFlow where PK_Project='" + PK_Project + "'";
SqlDataAdapter sdaGet = new SqlDataAdapter(sqlstrGet, con);
DataSet ds = new DataSet();
sdaGet.Fill(ds, "ProjectFlow");
for (int i = 0; i < chkBoxListFlow.Items.Count; i++)
{
for (int j = 0; j < ds.Tables["ProjectFlow"].Rows.Count; j++)
{
if (chkBoxListFlow.Items[i].Text == Convert.ToString(ds.Tables["ProjectFlow"].Rows[j]["FlowName"]))
{
chkBoxListFlow.Items[i].Selected = true;
}
}
}
con.Close();
对于一些简单的Sqlcommand,GridView的绑定这些问题,很简单的就可以实现,而且这样的操作用的比较多.
但是,对于一些比较复杂,用的次数又很少的数据库操作,需要用在类里先定义吗.
比如下面这个例子,是把数据库里的数据绑定到CheckBoxList上,只用到了一次,需要用类先定义吗?应该怎么定义?
string PK_Project = Request["PK_Project"].ToString();
con.Open();
string sqlstrGet = "select FlowName from ProjectFlow where PK_Project='" + PK_Project + "'";
SqlDataAdapter sdaGet = new SqlDataAdapter(sqlstrGet, con);
DataSet ds = new DataSet();
sdaGet.Fill(ds, "ProjectFlow");
for (int i = 0; i < chkBoxListFlow.Items.Count; i++)
{
for (int j = 0; j < ds.Tables["ProjectFlow"].Rows.Count; j++)
{
if (chkBoxListFlow.Items[i].Text == Convert.ToString(ds.Tables["ProjectFlow"].Rows[j]["FlowName"]))
{
chkBoxListFlow.Items[i].Selected = true;
}
}
}
con.Close();
string sqlstrGet = "select FlowName from ProjectFlow where PK_Project='" + PK_Project + "'";
SqlDataAdapter sdaGet = new SqlDataAdapter(sqlstrGet, con);
DataSet ds = new DataSet();
sdaGet.Fill(ds, "ProjectFlow");这些
然后写业务层,调用这个结果,再写页面层里绑定业务层里的实现。
如果项目很小,
你分层是没有多大的意义,而且降低程序的性能。
但是项目大了,就有必要了,
一个维护方便,
一个是移植方便,比如我要把b/s改成c/s
或者我要把sql server 改成oracle