C#listView用三层架构怎么连接数据库

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#listView用三层架构怎么连接数据库相关的知识,希望对你有一定的参考价值。

其实很简单,就是将本来的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的数据绑定。
参考技术A 在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;


本回答被提问者采纳
参考技术B 代码网上很多,随便搜,这里就不写了,太麻烦。简单跟你介绍一下三层架购吧。
三层架购就是将程序分为三层,一层为表示层,比如页面中能看到的LISTVIEW,用眼直观看到的控件,二是数据逻辑层,即通过何种逻辑和方法把数据库中的数据进行处理,三是数据层,就是基础的从数据库中取得数据的层面。
那么如何应用呢?首先第一步要从数据库中取得数据,这个非常简单,用连接,数据适配器,取出数据;第二步,逻辑层,将数据进行处理,比如格式化,加入计算逻辑,第三步,引用到控件即可。
标准的三层结构就是一系列可以引用的方法,比如读取基础数据,用X方法,不管读取哪个数据库都用它,只是修改一下参数即可;逻辑处理层,引用X方法取得的数据,进行按自己的形式进行处理,处理后暂存到数据结构中。然后用表示层引用数据结构中处理好的数据,这就是简单的三层结构。

具体代码都是基本代码的罗列,自己找下吧,比如读取数据库函数,可以找到很多,逻辑处理,自己写一下就行。控件引用,所有教程上都有的。
参考技术C 代码网上很多,随便搜,这里就不写了,太麻烦。简单跟你介绍一下三层架购吧。
三层架购就是将程序分为三层,一层为表示层,比如页面中能看到的LISTVIEW,用眼直观看到的控件,二是数据逻辑层,即通过何种逻辑和方法把数据库中的数据进行处理,三是数据层,就是基础的从数据库中取得数据的层面。
那么如何应用呢?首先第一步要从数据库中取得数据,这个非常简单,用连接,数据适配器,取出数据;第二步,逻辑层,将数据进行处理,比如格式化,加入计算逻辑,第三步,引用到控件即可。
标准的三层结构就是一系列可以引用的方法,比如读取基础数据,用X方法,不管读取哪个数据库都用它,只是修改一下参数即可;逻辑处理层,引用X方法取得的数据,进行按自己的形式进行处理,处理后暂存到数据结构中。然后用表示层引用数据结构中处理好的数据,这就是简单的三层结构。

具体代码都是基本代码的罗列,自己找下吧,比如读取数据库函数,可以找到很多,逻辑处理,自己写一下就行。控件引用,所有教程上都有的。

web三层架构

哈喽,大家好,今天我们一起来学习一下“三层架构”吧

目录

一,什么是三层架构

  1. 表示层 :主要是指与用户交互的界面,用于接收用户输入的数据和显示处理后用户需要的数据
  2. 业务逻辑层 :表示层和数据库访问层之间的桥梁,实现业务逻辑,具体包含:验证、计算、业务规则等等
  3. 数据访问层 :与数据库打交道,主要实现对数据的增、删、改、查

    除了以上的三层外,还有一层是 entity层 :实体层

二,三层架构的特点

表示层就相当于服务员,专门和用户打交道,获取用户的操作
业务逻辑层就相当于厨师,从数据访问层拿来数据,根据表示层传来的用户操作去执行操作
数据访问层就相当于采购员,用户需要什么数据,就从数据库或是文件中拿来此数据,交给业务逻辑

三,为什么要用三层架构

用三层架构的目的就是为了实现 高内聚低耦合 的思想:
高内聚 :尽可能类的每个成员方法只完成一件事
低耦合 :减少类内部,一个成员方法调用另一个成员方法
从类角度来看, 高内聚低耦合:减少类内部,对其他类的调用
从功能块来看, 高内聚低耦合:减少模块之间的交互复杂度
简单来说,就是 解耦 :只做自己功能内的事

分层模式是最常见的一种架构模式
分层模式是很多架构模式的基础

分层
将解决方案的组件分隔到不同的层中 在同一个层中组件之间保持内聚性 层与层之间保持松耦合

面向接口编程:
设计与实现分开
在一个面向对象的系统中,系统的各种功能是由许许多多的不同对象协作完成的。在这种情况下,各个
对象内部是如何实现自己的,对系统设计人员来讲就不那么重要了;而各个对象之间的协作关系则成为系
统设计的关键。小到不同类之间的通信,大到各模块之间的交互,在系统设计之初都是要着重考虑的,
这也是系统设计的主要工作内容。面向接口编程就是指按照这种思想来编程。

四,实现的方式



完成的目录结构(样式):

五,使用分层实现用户登录功能

数据是小编写死的,需要自己改
分析:

  1. 创建用户实体类
public class User 
    	private int id;
    	private String username;
    	private String password;
   	public int getId() 
         	return id;
    	
    	public void setId(int id) 
        		this.id = id;
    	
    	…省略了后续的set/get方法

  1. 编写数据访问层
    数据接口:
public interface UserDao 
    	//根据用户进行查找,返回用户列表
    	public boolean findUser(User user);

数据访问接口的实现

public class UserDaoJdbcImpl implements UserDao
public boolean findUser(User user)
    	Connection con = null;
    	PreparedStatement pStatement = null;
    	ResultSet res = null;
    	/** 调用创建数据库连接的方法 获得连接,实现用户名和密码查询*/

  1. 编写业务逻辑层
    编写业务逻辑层接口
//编写业务逻辑控制接口UserBiz
public interface UserBiz 
     	public boolean login(User user);

编写业务逻辑层接口实现

public class UserBizImpl implements UserBiz
    	public List login(User user)
        		UserDao ud = new UserDaoJdbcImpl();
        		boolean flag = ud.findUser(user);
        		return flag;
    	

  1. 编写表示层
<%@page import="org.jbit.bean.*" %>
<%@page import="org.jbit.biz.*" %>
<%@page import="org.jbit.biz.impl.*" %>
<%
    String uname=request.getParameter("user");
    String upwd=request.getParameter("pwd");
    User user = new User();
    user.setUsername(uname);
    user.setPassword(upwd);
    UserBiz ub = new UserBizImpl();
    boolean flag = ub.login(user);
    if(flag)
        response.sendRedirect("welcome.jsp");	
    else
        response.sendRedirect("login.jsp");
%>

到这里就结束了,希望你能对你有用,记得给小编个赞!!!

以上是关于C#listView用三层架构怎么连接数据库的主要内容,如果未能解决你的问题,请参考以下文章

asp.net三层架构与asp.net MVC各自的区别,各自应该应用在啥场合,在啥情况下用三层,啥情况下用MVC

ASP.NET三层架构DAL层连接数据库的方法

用三层架构写删除和不实现功能的添加

asp.net用三层架构如何实现数据的查询、删除以及录入信息,希望可以有实例说明,谢谢!

用三层神经网络识别手写数字

PowerBuilder编程新思维3:适配(三层架构与GraphQL)