ASN.NET连接Access数据库开发

来源:互联网 发布:linux 查看主机arp 编辑:程序博客网 时间:2024/04/19 20:19

今天楼主给大家带来一份ASP.NET链接Access数据库开发的经验(代码都是博主一行一行敲出来的后面有文中例子的压缩包链接):

代码被博主贴在了后面

链接过几天发上来



第一步:创建Access数据库  Office一般自带,右键添加,没有的在网上查查怎么安装Offcie或者补装Access:


第二步:新建Access数据库放在ACCESSDB文件夹里待用


第三步: 菜单栏选择创建  选择表创建一张表 创建一张表 



第四步:为表新增字段


你可以对表的字段进行一些属性设置



如图:你可以选择任意数据类型



你也可以插入一个字段,删除字段,重命名字段



第五步:点击保存,为我们的表命名 博主的命名为UserInfo点击确定




第六步:接下来我们开始创建一个Web项目:Visual C# >> web >> ASP.NET空Web应用程序


第七步:添加新建项>>Visual C#>>Web>>Web窗体>>命名并且保存



第八步:把登陆的网页标签写好 这里用form表单提交



第九步:把刚才新建的Web窗体打开对着它鼠标右键选择“打开所在文件夹” 把我们的ACCESSDB文件夹放进去 此时我们的web窗体Userlogin.aspx文件与ACCESSDB应该再同一目录下



第十步:打开Web.config文件配置链接字符串,链接数据库之前从这里读取链接信息



第十一步:选择解决方案,鼠标右键添加新建项搭建三层架构:DAL>>BLL>>MODEL


VisualC#  >> 类库 >>命名并且保存


这里是MODEL层的:



第十二步:三层搭建完毕之后互相添加引用

UserInfoManager 添加引用 Model  BLL

BLL 添加引用  Model  DAL

DAL 添加引用 Model

添加引用完毕之后  首先打开DAL层:

添加引用:程序集 >> 框架:>>System.Configuration勾上>>确定>>写出如下图代码


这一句获取的就是我们在Web.config配置的信息哦    中括号中的字符串一定要与WebConfig中 connectionString中 name的值对应起来

connectionString = ConfigurationManager.ConnectionStrings["connectionString"].ConnectionString;



第十三步:在DAL层创建一个UserManager搭上前缀 DAL_UserManager编写如下代码:



第十四步:BLL层搭建BLL_UserManager管理类  编写如下代码:



第十五步:打开web窗体UserLogin.aspx 鼠标右键查看代码  Visual studio 2010 可以直接F7

编写如下代码:

运行:(记得提前在数据库插入数据:)


失败的截图:


成功的截图:


UserUpdate.aspx后端代码


UserUpdate.aspx代码:



添加数据

修改数据

查询数据

删除数据

几个功能完成后的截图:



下面是代码部分:

AccessVisitHelper:数据访问的帮助类代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Configuration;
using System.Data;
using System.Data.OleDb;
using Model;


namespace DAL
{
    public class AccessVisitHelper
    {
        private string connectionString;
        public AccessVisitHelper()
        {
            //获取配置文件中的连接字符串
            //配置文件中连接字符串:Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:/UserInfoManager/UserInfoManager/ACCESSDB/UserInfoManageDB.mdb
            connectionString = ConfigurationManager.ConnectionStrings["connectionString"].ConnectionString;
        }
        public AccessVisitHelper(string baseFilePath)
        {
            //重载一个有参数的构造器
            string connectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;
                                      Data Source=E:/UserInfoManager/UserInfoManager/" + baseFilePath;
        }


        /// <summary>
        /// 增删改数据的方法
        /// </summary>
        /// <param name="commandText">SQL</param>
        /// <param name="pars">参数数组</param>
        /// <returns>受影响的行数</returns>
        public int Set_DataObject(string commandText, OleDbParameter[] pars = null)
        {
            //定义结果值
            int result = 0;
            //连接对象
            //使用using能释放对象资源
            using (OleDbConnection connection = new OleDbConnection(connectionString))
            {
                using (OleDbCommand command = connection.CreateCommand())
                {
                    connection.Open();
                    //设置SQL
                    command.CommandText = commandText;
                    //设置参数
                    if (pars!=null)
                    {
                        command.Parameters.AddRange(pars);
                    }
                   result = command.ExecuteNonQuery();
                }
            }
            return result;
        }


        /// <summary>
        /// 创建一个返回DataTable数据的方法
        /// </summary>
        /// <param name="commandText">SQL</param>
        /// <param name="pars">参数数组</param>
        /// <returns>DataTable</returns>
        public DataTable Get_DataTable(string commandText,OleDbParameter [] pars = null)
        {
            DataTable dt = new DataTable();
            //连接对象
            //使用using能释放对象资源
            using (OleDbConnection connection = new OleDbConnection(connectionString))
            {
                using (OleDbCommand command = connection.CreateCommand())
                {
                    //设置SQL
                    command.CommandText = commandText;
                    //设置参数
                    if (pars!=null)
                    {
                        command.Parameters.AddRange(pars);
                    }
                    //填充数据到DataTable
                    using (OleDbDataAdapter adapter = new OleDbDataAdapter(command))
                    {
                        adapter.Fill(dt);
                    }
                }
            }
            return dt;
        }
    }
}


DAL_UserManager用户信息管理类:代码如下

using Model;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.OleDb;
using System.Linq;
using System.Text;
using System.Threading.Tasks;


namespace DAL
{
    public class DAL_UserManager
    {
        //access访问帮助类
        AccessVisitHelper helper = new AccessVisitHelper();


        /// <summary>
        /// 修改用户信息
        /// </summary>
        /// <param name="userInfo">用户实体对象</param>
        /// <returns>受影响行数</returns>
        public int Set_UserInfoUpdate(UserInfo userInfo)
        {
            string commandText = "Update UserInfo Set UserPassword = @UserPassword,UserPhone = @UserPhone where UserID = @UserID";
            List<OleDbParameter> parsList = new List<OleDbParameter>();
            parsList.Add(new OleDbParameter("@UserPassword", userInfo.UserPassword));
            parsList.Add(new OleDbParameter("@UserPhone",userInfo.UserPhone ));
            parsList.Add(new OleDbParameter("@UserID", userInfo.UserId));


            return helper.Set_DataObject(commandText, parsList.ToArray());
        }


        /// <summary>
        /// 用户注册
        /// </summary>
        /// <param name="userInfo">用户信息实体</param>
        /// <returns>受影响行数</returns>
        public int Set_UserInfoInsert(UserInfo userInfo)
        {
            string commandText = "Insert into UserInfo(UserAccount,UserPassword,UserPhone) values (@UserAccount,@UserPassowrd,@UserPhone)";
            List<OleDbParameter> parsList = new List<OleDbParameter>();
            parsList.Add(new OleDbParameter("@UserAccount", userInfo.UserAccount));
            parsList.Add(new OleDbParameter("@UserPassword", userInfo.UserPassword));
            parsList.Add(new OleDbParameter("@UserPhone", userInfo.UserPhone));
            return helper.Set_DataObject(commandText, parsList.ToArray());
        }




        /// <summary>
        /// 用户登录
        /// </summary>
        /// <param name="userAccount">账号</param>
        /// <param name="userPassword">密码</param>
        /// <returns>用户信息对象</returns>
        public UserInfo Get_UserLogin(string userAccount,string userPassword)
        {
            UserInfo userinfo = null;
            //SQL
            string commandText = "select * from UserInfo where UserAccount =@UserAccount and UserPassword = @UserPassword";
            //参数数组
            List<OleDbParameter> parsList = new List<OleDbParameter>();
            parsList.Add(new OleDbParameter("@UserAccount",userAccount));
            parsList.Add(new OleDbParameter("@UserPassword",userPassword));
            //parsList.ToArray()从集合转化到数组
            DataTable dt = helper.Get_DataTable(commandText, parsList.ToArray());
            if (dt.Rows.Count>0)
            {
                //实例化用户对象放在if里面判断如果没有数据返回null
                userinfo = new UserInfo()
                {
                    UserId = Convert.ToInt32(dt.Rows[0]["UserID"]),
                    UserAccount = dt.Rows[0]["UserAccount"].ToString(),
                    UserPassword = dt.Rows[0]["UserPassword"].ToString(),
                    UserPhone = dt.Rows[0]["UserPhone"].ToString()
                };
            }
            return userinfo;
        }


        /// <summary>
        /// 注销用户
        /// </summary>
        /// <param name="userAccount">用户账号</param>
        /// <param name="userPassword">用户密码</param>
        /// <returns>受影响行数</returns>
        public int Set_UserInfoDelete(string userAccount,string userPassword)
        {
            //SQL
            string commandText = "Delete from UserInfo where  UserAccount =@UserAccount and UserPassword = @UserPassword";
            //参数数组
            List<OleDbParameter> parsList = new List<OleDbParameter>();
            parsList.Add(new OleDbParameter("@UserAccount", userAccount));
            parsList.Add(new OleDbParameter("@UserPassword", userPassword));
            return helper.Set_DataObject(commandText, parsList.ToArray());
        }
    }
}


BLL_UserManager BLL层用户信息管理类:代码如下

using DAL;
using Model;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;


namespace BLL
{
    public class BLL_UserManager
    {
        //DAL层的信息管理类
        DAL_UserManager userManager = new DAL_UserManager();


        /// <summary>
        /// 用户登录
        /// </summary>
        /// <param name="userAccount">账号</param>
        /// <param name="userPassword">密码</param>
        /// <returns>用户信息对象</returns>
        public UserInfo Get_UserLogin(string userAccount, string userPassword)
        {
            return userManager.Get_UserLogin(userAccount, userPassword);
        }


        /// <summary>
        /// 修改用户信息
        /// </summary>
        /// <param name="userInfo">用户实体对象</param>
        /// <returns>受影响行数</returns>
        public int Set_UserInfoUpdate(UserInfo userInfo)
        {
            return userManager.Set_UserInfoUpdate(userInfo);
        }


        /// <summary>
        /// 用户注册
        /// </summary>
        /// <param name="userInfo">用户信息实体</param>
        /// <returns>受影响行数</returns>
        public int Set_UserInfoInsert(UserInfo userInfo)
        {
            return userManager.Set_UserInfoInsert(userInfo);
        }


        /// <summary>
        /// 注销用户
        /// </summary>
        /// <param name="userAccount">用户账号</param>
        /// <param name="userPassword">用户密码</param>
        /// <returns>受影响行数</returns>
        public int Set_UserInfoDelete(string userAccount, string userPassword)
        {
            return userManager.Set_UserInfoDelete(userAccount, userPassword);
        }
    }
}


UserInfo 用户实体信息类:代码如下

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;


namespace Model
{
    public class UserInfo
    {
        public int UserId { get; set; }
        public string UserAccount { get; set; }
        public string UserPassword { get; set; }
        public string UserPhone { get; set; }
    }
}


UserRegister.aspx  注册:前端代码如下

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="UserRegister.aspx.cs" Inherits="UserInfoManager.UserRegister" %>


<!DOCTYPE html>


<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <a href="/UserRegister.aspx">注册</a> | <a href="/UserLogin.aspx">登陆</a> | <a href="/UserUpdate.aspx">修改</a> | <a href="/UserDelete.aspx">注销</a>
        <h3>用户注册</h3>
         账号:<input  type="text" name="userAccount"  /><br/><br/>
         密码:<input type="password" name="userPassword" /><br/><br/>
         手机:<input type="text" name="userPhone" /><br/><br/>
        <input type="submit" value="提交注册" /><br/><br/>
    </div>
    </form>
</body>
</html>


UserRegister.aspx  注册:后端代码如下

using BLL;
using Model;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;


namespace UserInfoManager
{
    public partial class UserRegister : System.Web.UI.Page
    {
        /// <summary>
        /// BLL层用户信息管理类
        /// </summary>
        BLL_UserManager userManager = new BLL_UserManager();
        protected void Page_Load(object sender, EventArgs e)
        {
            if(IsPostBack){
                string userAccount = Request.Form["userAccount"];
                string userPassword = Request.Form["userPassword"];
                string userPhone = Request.Form["userPhone"];
                //实体类属性赋值
                UserInfo userInfo = new UserInfo();
                userInfo.UserAccount = userAccount;
                userInfo.UserPassword = userPassword;
                userInfo.UserPhone = userPhone;
                //执行注册
                int result = userManager.Set_UserInfoInsert(userInfo);
                if (result > 0)
                {
                    Response.Write("<script>alert('注册成功!');</script>");
                }
                else
                {
                    Response.Write("<script>alert('注册失败!');</script>");
                }
            }
        }
    }
}


UserLogin.aspx 登录 前端代码如下:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="UserLogin.aspx.cs" Inherits="UserInfoManager.UserLogin" %>


<!DOCTYPE html>


<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />


    <title></title>
</head>
<body>
    <form id="form1" runat="server">
        <a href="/UserRegister.aspx">注册</a> | <a href="/UserLogin.aspx">登陆</a> | <a href="/UserUpdate.aspx">修改</a> | <a href="/UserDelete.aspx">注销</a>
        <h3>用户登录</h3>
        账号:<input type="text" name="userAccount" /><br/><br/>
        密码:<input type="password" name="userPassword" /><br/><br/>
        <input type="submit" value="点击登录" />       
    </form>


</body>

</html>

UserLogin.aspx 登录 后端代码如下:

using BLL;
using Model;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;


namespace UserInfoManager
{
    public partial class UserLogin : System.Web.UI.Page
    {
        /// <summary>
        /// BLL层用户信息管理类
        /// </summary>
        BLL_UserManager userManager = new BLL_UserManager();


        protected void Page_Load(object sender, EventArgs e)
        {
            ///判断是否是用户发送请求
            if(IsPostBack){
                //input name的值
                string userPassword = Request.Form["userPassword"];
                string userAccount = Request.Form["userAccount"];
                UserInfo ui = userManager.Get_UserLogin(userAccount, userPassword);
                //判断用户是否登陆成功
                if (ui == null)
                {
                    Response.Write("<script>alert('登陆失败!账号密码不匹配!')</script>");
                }
                else
                {
                    //新建一个Session 保存用户信息
                    Session["userInfo"] = ui;
                    Response.Redirect("/UserUpdate.aspx");
                    Response.End();
                }
            }
        }
    }
}



UserUpdate.aspx 详细信息/修改信息前端代码如下:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="UserUpdate.aspx.cs" Inherits="UserInfoManager.UserUpdate" %>


<!DOCTYPE html>


<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <a href="/UserRegister.aspx">注册</a> | <a href="/UserLogin.aspx">登陆</a> | <a href="/UserUpdate.aspx">修改</a> | <a href="/UserDelete.aspx">注销</a>
            <h3>用户信息</h3>
            <br />
            序号: <%=this.userInfo.UserId %><br />
            <br />
            账号:<input type="text" name="userAccount" readonly="true" value="<%=this.userInfo.UserAccount %>" /><br />
            <br />
            密码:<input type="password" name="userPassword" /><br />
            <br />
            电话:<input type="text" name="userPhone" value="<%=this.userInfo.UserPhone %>" /><br />
            <br />
            <input value="点击修改" type="submit" />
        </div>
    </form>
</body>
</html>



UserUpdate.aspx 详细信息/修改信息后端代码如下:

using BLL;
using Model;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;


namespace UserInfoManager
{
    public partial class UserUpdate : System.Web.UI.Page
    {
        public UserInfo userInfo;
        BLL_UserManager bll_UserManager = new BLL_UserManager();
        protected void Page_Load(object sender, EventArgs e)
        {
            //从Session中取出session对象 转化为UserInfo对象
            userInfo = Session["userInfo"] as UserInfo;
            if (IsPostBack)
            {
                //获取提交的数据
                string userPassowrd = Request.Form["userPassword"];
                string userPhone = Request.Form["userPhone"];


                userInfo.UserPassword = userPassowrd;
                userInfo.UserPhone = userPhone;


                int result = bll_UserManager.Set_UserInfoUpdate(userInfo);
                if (result > 0)
                {
                    Response.Write("<script>alert('修改成功!');</script>");
                }
                else
                {
                    Response.Write("<script>alert('修改失败!');</script>");
                }
            }
        }
    }
}


UserRegister.aspx注册 前端代码如下:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="UserRegister.aspx.cs" Inherits="UserInfoManager.UserRegister" %>


<!DOCTYPE html>


<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <a href="/UserRegister.aspx">注册</a> | <a href="/UserLogin.aspx">登陆</a> | <a href="/UserUpdate.aspx">修改</a> | <a href="/UserDelete.aspx">注销</a>
        <h3>用户注册</h3>
         账号:<input  type="text" name="userAccount"  /><br/><br/>
         密码:<input type="password" name="userPassword" /><br/><br/>
         手机:<input type="text" name="userPhone" /><br/><br/>
        <input type="submit" value="提交注册" /><br/><br/>
    </div>
    </form>
</body>
</html>


UserRegister.aspx注册 后端代码如下:

using BLL;
using Model;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;


namespace UserInfoManager
{
    public partial class UserRegister : System.Web.UI.Page
    {
        /// <summary>
        /// BLL层用户信息管理类
        /// </summary>
        BLL_UserManager userManager = new BLL_UserManager();
        protected void Page_Load(object sender, EventArgs e)
        {
            if(IsPostBack){
                string userAccount = Request.Form["userAccount"];
                string userPassword = Request.Form["userPassword"];
                string userPhone = Request.Form["userPhone"];
                //实体类属性赋值
                UserInfo userInfo = new UserInfo();
                userInfo.UserAccount = userAccount;
                userInfo.UserPassword = userPassword;
                userInfo.UserPhone = userPhone;
                //执行注册
                int result = userManager.Set_UserInfoInsert(userInfo);
                if (result > 0)
                {
                    Response.Write("<script>alert('注册成功!');</script>");
                }
                else
                {
                    Response.Write("<script>alert('注册失败!');</script>");
                }
            }
        }
    }
}


这是本文示例连接:http://download.csdn.net/detail/microsoftdesigner/9688304  

有的地方因为篇幅原因未做详细说明,还请大家见谅

0 0
原创粉丝点击