C#listView用三层架构怎么连接数据库
4个回答
展开全部
其实很简单,就是将本来的listView控件直接绑定数据库变成绑定数据对象。
1.在Model(实体层)中:新建一个实体类,名字可以随便取,这里取名为DataObj
2.在DAL(数据链路层)层中:写一个以IList<DataObj>为返回类型的方法,其中用List<DataObj>盛载查询到的数据流将它们返回出来;
3.在BLL(业务逻辑层)层中:BLL层其实没什么,只要写一个方法接收DAL层中传过来的数据流,此方法仍然是以IList<DataObj>为返回类型;
4.在web层(用户层)中:添加一个网页,将listView控件拖到页面上,listView的ID默认为listView1,编辑listView中的Edit columns项,向其中添加BoundField,想显示多字段就加多少,编辑每个BoundField中大DataField,DataField中的字段必须与DataObj中的public类型字段相一致,
编辑完成后在页面的后台代码.aspx.cs文件的page_Load()方法中调用BLL中的那个以IList<DataObj>为返回类型的方法,用一个实例化的IList<DataObj> 实例命名为listData接收那个方法返回的数据,最后是写两行代码:
listView1.DataSource=listData;
listView1.DataBind();
这样就完成了三成架构的listView的数据绑定。
1.在Model(实体层)中:新建一个实体类,名字可以随便取,这里取名为DataObj
2.在DAL(数据链路层)层中:写一个以IList<DataObj>为返回类型的方法,其中用List<DataObj>盛载查询到的数据流将它们返回出来;
3.在BLL(业务逻辑层)层中:BLL层其实没什么,只要写一个方法接收DAL层中传过来的数据流,此方法仍然是以IList<DataObj>为返回类型;
4.在web层(用户层)中:添加一个网页,将listView控件拖到页面上,listView的ID默认为listView1,编辑listView中的Edit columns项,向其中添加BoundField,想显示多字段就加多少,编辑每个BoundField中大DataField,DataField中的字段必须与DataObj中的public类型字段相一致,
编辑完成后在页面的后台代码.aspx.cs文件的page_Load()方法中调用BLL中的那个以IList<DataObj>为返回类型的方法,用一个实例化的IList<DataObj> 实例命名为listData接收那个方法返回的数据,最后是写两行代码:
listView1.DataSource=listData;
listView1.DataBind();
这样就完成了三成架构的listView的数据绑定。
展开全部
在config文件中配一个节点
<configuration>
<connectionStrings>
<add name="connString" connectionString="Data Source=.;Initial Catalog=MyBookShop;User ID=sa;Password=sa"/>
</connectionStrings>
在数据访问层加一个 DBHelper 类,可以声明为static 的用的 时候 直接用类名. 调用就可以了。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
namespace MyBookShop.DAL
{
public static class DBHelper
{
//得到连接
private static SqlConnection connection;
public static SqlConnection Connection
{
get {
string connString = ConfigurationManager.ConnectionStrings["connString"].ToString();
if(connection==null){
connection = new SqlConnection(connString);
connection.Open();
}
if(connection.State==ConnectionState.Closed){
connection.Open();
}
if(connection.State==ConnectionState.Broken){
connection.Close();
connection.Open();
}
return DBHelper.connection;
}
}
//执行增删改
public static int ExecuteCommand(string safeSql) {
SqlCommand command = new SqlCommand(safeSql,DBHelper.Connection);
int result = command.ExecuteNonQuery();
DBHelper.Connection.Close();
return result;
}
public static int ExecuteCommand(string sql,params SqlParameter[] values)
{
SqlCommand command = new SqlCommand(sql, DBHelper.Connection);
command.Parameters.AddRange(values);
int result = command.ExecuteNonQuery();
DBHelper.Connection.Close();
return result;
}
//执行查询
public static DataTable getDataTable(string safeSql) {
DataSet ds = new DataSet();
SqlDataAdapter sda = new SqlDataAdapter(safeSql,DBHelper.Connection);
sda.Fill(ds);
DBHelper.Connection.Close();
return ds.Tables[0];
}
public static DataTable getDataTable(string sql,params SqlParameter[] values)
{
SqlCommand command = new SqlCommand(sql,DBHelper.Connection);
command.Parameters.AddRange(values);
DataSet ds = new DataSet();
SqlDataAdapter sda = new SqlDataAdapter(command);
sda.Fill(ds);
DBHelper.Connection.Close();
return ds.Tables[0];
}
//查询数量
public static int getScalar(string safeSql)
{
SqlCommand command = new SqlCommand(safeSql, DBHelper.Connection);
int result =Convert.ToInt32(command.ExecuteScalar());
DBHelper.Connection.Close();
return result;
}
public static int getScalar(string safeSql,params SqlParameter[] values)
{
SqlCommand command = new SqlCommand(safeSql, DBHelper.Connection);
command.Parameters.AddRange(values);
int result = Convert.ToInt32(command.ExecuteScalar());
DBHelper.Connection.Close();
return result;
}
}
}
<configuration>
<connectionStrings>
<add name="connString" connectionString="Data Source=.;Initial Catalog=MyBookShop;User ID=sa;Password=sa"/>
</connectionStrings>
在数据访问层加一个 DBHelper 类,可以声明为static 的用的 时候 直接用类名. 调用就可以了。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
namespace MyBookShop.DAL
{
public static class DBHelper
{
//得到连接
private static SqlConnection connection;
public static SqlConnection Connection
{
get {
string connString = ConfigurationManager.ConnectionStrings["connString"].ToString();
if(connection==null){
connection = new SqlConnection(connString);
connection.Open();
}
if(connection.State==ConnectionState.Closed){
connection.Open();
}
if(connection.State==ConnectionState.Broken){
connection.Close();
connection.Open();
}
return DBHelper.connection;
}
}
//执行增删改
public static int ExecuteCommand(string safeSql) {
SqlCommand command = new SqlCommand(safeSql,DBHelper.Connection);
int result = command.ExecuteNonQuery();
DBHelper.Connection.Close();
return result;
}
public static int ExecuteCommand(string sql,params SqlParameter[] values)
{
SqlCommand command = new SqlCommand(sql, DBHelper.Connection);
command.Parameters.AddRange(values);
int result = command.ExecuteNonQuery();
DBHelper.Connection.Close();
return result;
}
//执行查询
public static DataTable getDataTable(string safeSql) {
DataSet ds = new DataSet();
SqlDataAdapter sda = new SqlDataAdapter(safeSql,DBHelper.Connection);
sda.Fill(ds);
DBHelper.Connection.Close();
return ds.Tables[0];
}
public static DataTable getDataTable(string sql,params SqlParameter[] values)
{
SqlCommand command = new SqlCommand(sql,DBHelper.Connection);
command.Parameters.AddRange(values);
DataSet ds = new DataSet();
SqlDataAdapter sda = new SqlDataAdapter(command);
sda.Fill(ds);
DBHelper.Connection.Close();
return ds.Tables[0];
}
//查询数量
public static int getScalar(string safeSql)
{
SqlCommand command = new SqlCommand(safeSql, DBHelper.Connection);
int result =Convert.ToInt32(command.ExecuteScalar());
DBHelper.Connection.Close();
return result;
}
public static int getScalar(string safeSql,params SqlParameter[] values)
{
SqlCommand command = new SqlCommand(safeSql, DBHelper.Connection);
command.Parameters.AddRange(values);
int result = Convert.ToInt32(command.ExecuteScalar());
DBHelper.Connection.Close();
return result;
}
}
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
代码网上很多,随便搜,这里就不写了,太麻烦。简单跟你介绍一下三层架购吧。
三层架购就是将程序分为三层,一层为表示层,比如页面中能看到的LISTVIEW,用眼直观看到的控件,二是数据逻辑层,即通过何种逻辑和方法把数据库中的数据进行处理,三是数据层,就是基础的从数据库中取得数据的层面。
那么如何应用呢?首先第一步要从数据库中取得数据,这个非常简单,用连接,数据适配器,取出数据;第二步,逻辑层,将数据进行处理,比如格式化,加入计算逻辑,第三步,引用到控件即可。
标准的三层结构就是一系列可以引用的方法,比如读取基础数据,用X方法,不管读取哪个数据库都用它,只是修改一下参数即可;逻辑处理层,引用X方法取得的数据,进行按自己的形式进行处理,处理后暂存到数据结构中。然后用表示层引用数据结构中处理好的数据,这就是简单的三层结构。
具体代码都是基本代码的罗列,自己找下吧,比如读取数据库函数,可以找到很多,逻辑处理,自己写一下就行。控件引用,所有教程上都有的。
三层架购就是将程序分为三层,一层为表示层,比如页面中能看到的LISTVIEW,用眼直观看到的控件,二是数据逻辑层,即通过何种逻辑和方法把数据库中的数据进行处理,三是数据层,就是基础的从数据库中取得数据的层面。
那么如何应用呢?首先第一步要从数据库中取得数据,这个非常简单,用连接,数据适配器,取出数据;第二步,逻辑层,将数据进行处理,比如格式化,加入计算逻辑,第三步,引用到控件即可。
标准的三层结构就是一系列可以引用的方法,比如读取基础数据,用X方法,不管读取哪个数据库都用它,只是修改一下参数即可;逻辑处理层,引用X方法取得的数据,进行按自己的形式进行处理,处理后暂存到数据结构中。然后用表示层引用数据结构中处理好的数据,这就是简单的三层结构。
具体代码都是基本代码的罗列,自己找下吧,比如读取数据库函数,可以找到很多,逻辑处理,自己写一下就行。控件引用,所有教程上都有的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
代码网上很多,随便搜,这里就不写了,太麻烦。简单跟你介绍一下三层架购吧。
三层架购就是将程序分为三层,一层为表示层,比如页面中能看到的LISTVIEW,用眼直观看到的控件,二是数据逻辑层,即通过何种逻辑和方法把数据库中的数据进行处理,三是数据层,就是基础的从数据库中取得数据的层面。
那么如何应用呢?首先第一步要从数据库中取得数据,这个非常简单,用连接,数据适配器,取出数据;第二步,逻辑层,将数据进行处理,比如格式化,加入计算逻辑,第三步,引用到控件即可。
标准的三层结构就是一系列可以引用的方法,比如读取基础数据,用X方法,不管读取哪个数据库都用它,只是修改一下参数即可;逻辑处理层,引用X方法取得的数据,进行按自己的形式进行处理,处理后暂存到数据结构中。然后用表示层引用数据结构中处理好的数据,这就是简单的三层结构。
具体代码都是基本代码的罗列,自己找下吧,比如读取数据库函数,可以找到很多,逻辑处理,自己写一下就行。控件引用,所有教程上都有的。
三层架购就是将程序分为三层,一层为表示层,比如页面中能看到的LISTVIEW,用眼直观看到的控件,二是数据逻辑层,即通过何种逻辑和方法把数据库中的数据进行处理,三是数据层,就是基础的从数据库中取得数据的层面。
那么如何应用呢?首先第一步要从数据库中取得数据,这个非常简单,用连接,数据适配器,取出数据;第二步,逻辑层,将数据进行处理,比如格式化,加入计算逻辑,第三步,引用到控件即可。
标准的三层结构就是一系列可以引用的方法,比如读取基础数据,用X方法,不管读取哪个数据库都用它,只是修改一下参数即可;逻辑处理层,引用X方法取得的数据,进行按自己的形式进行处理,处理后暂存到数据结构中。然后用表示层引用数据结构中处理好的数据,这就是简单的三层结构。
具体代码都是基本代码的罗列,自己找下吧,比如读取数据库函数,可以找到很多,逻辑处理,自己写一下就行。控件引用,所有教程上都有的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询