文档

一、搭建三层架构

1.创建视图层项目
创建一个空白的ASP.NET web(.NET framework)项目
2.创建业务层项目
鼠标右键点击解决方案添加新建项目
添加类库(.NET framework)项目,项目命名为BLL
3.创建数据访问层
鼠标右键点击解决方案添加新建项目
添加类库(.NET framework)项目,项目命名为DAL
4.创建模型层项目
鼠标右键点击解决方案添加新建项目
添加类库(.NET framework)项目,项目命名为DataLinq

二、添加引用

1.鼠标右键点击模型层项目,添加引用程序集
搜索Linq引用System.Data.Linq
2.在数据访问层和业务逻辑层中重复以上操作
3.鼠标右键点击数据访问层项目,添加引用
引用项目DataLinq(模型层项目)
4.按照以上方法进行引用
在视图层引用业务层、模型层
在业务层引用数据访问层、模型层
在数据访问层引用模型层

三、模型层编码

1.模型层
编写Student类

        private int id;
        private string name;
        private int age;
        private string address;
        private DateTime studydate;

封装字段

        [Column(Name = "Id", IsPrimaryKey = true, IsDbGenerated = true)]
        public int Id { get => id; set => id = value; }

        [Column(Name = "Name")]
        public string Name { get => name; set => name = value; }

        [Column(Name = "Age")]
        public int Age { get => age; set => age = value; }

        [Column(Name = "Address")]
        public string Address { get => address; set => address = value; }

        [Column(Name = "StudyDate")]
        public DateTime StudyDate { get => studydate; set => studydate = value; }

添加构造函数

        public Student()
        {
        }

        public Student(string name, int age, string address, DateTime studydate)
        {
            Name = name;
            Age = age;
            Address = address;
            StudyDate = studydate;
        }

        public Student(string name, int age, string address)
        {
            Name = name;
            Age = age;
            Address = address;
        }

在DataLinq中添加类MyDataContext
使用Linq语句链接数据库

    [Database(Name = "Da_sanFE_LX")]
    public class MyDataContext : DataContext
    {
        public MyDataContext() : base
                  ("Server=.;database=Da_sanFE_LX;uid=sa;pwd=208827563")
        {

        }
        public Table<Student> Student;
    }

四、数据查询

在DAL中创建Stu_DAO类,在BLL中创建Stu_Service类
然后在Stu_DAO中输入

        public MyDataContext context = new MyDataContext();
        public List<Student> SelectStudents()
        {
            List<Student> stus = new List<Student>();

            var result = (from stu in context.Student
                         select stu).ToList();

            stus = result;
            
            return stus;
        }

在Stu_Service中输入

         Stu_DAO stu_dao = new Stu_DAO();
        public List<Student> SelectStudents()
        {
            return stu_dao.SelectStudents();
        }

然后在web项目中新建web窗体
在窗体中输入基本外观和表中元素

        <table border="1">
                <tr>
                    <th>ID</th>
                    <th>姓名</th>
                    <th>年龄</th>
                    <th>地址</th>
                    <th>入学日期</th>
                    <th>操作</th>
                </tr>
        </table>

在tr标签后插入Repeater插件并输入查询数据代码

          <table border="1">
                <tr>
                    <th>ID</th>
                    <th>姓名</th>
                    <th>年龄</th>
                    <th>地址</th>
                    <th>入学日期</th>
                    <th>操作</th>
                </tr>
                <asp:Repeater ID="Repeater1" runat="server" OnItemCommand="Repeater1_ItemCommand">
                    <ItemTemplate>
                        <tr>
                            <td><%#Eval("id") %></td>
                            <td><%#Eval("name") %></td>
                            <td><%#Eval("age") %></td>
                            <td><%#Eval("address") %></td>
                            <td><%#Eval("studydate") %></td>
                            <td>
                                <asp:LinkButton ID="LinkButton1" runat="server" CommandName="delete" CommandArgument='<%#Eval("id") %>'>删除</asp:LinkButton>
                                <asp:LinkButton ID="LinkButton2" runat="server" CommandName="edit" CommandArgument='<%#Eval("id") %>'>修改</asp:LinkButton>
                            </td>

                        </tr>
                    </ItemTemplate>
                </asp:Repeater>
            </table>

最后后去aspx.cs中调用查询方法

            //调用service
           Stu_Service service = new Stu_Service();
           protected void Page_Load(object sender, EventArgs e)
           {
                if (!IsPostBack)
                {
                    this.Repeater1.DataSource = service.SelectStudents();
                    this.Repeater1.DataBind();
                }
           }

五、增删改

在Stu_DAO和Stu_Service中输入增删改的方法
Stu_DAO代码

        public List<Student> SelectStudentsByName(string name)
        {
            List<Student> stus = new List<Student>();

            var result = from stu in context.Student
                         where (stu.Name.IndexOf(name)!=-1?true:false)
                         select stu;

            foreach (Student item in result)
            {
                stus.Add(item);
            }

            return stus;
        }

        public bool DeleteById(int id)
        {
            try
            {
                var result = (from stu in context.Student
                              where stu.Id == id
                              select stu).Single();

                context.Student.DeleteOnSubmit(result);
                context.SubmitChanges();

                return true;
            }
            catch
            {
                return false;
            }
        }

        public int Insert(Student stu)
        {
            try
            {
                context.Student.InsertOnSubmit(stu);
                context.SubmitChanges();
                return stu.Id;
            }
            catch
            {
                return 0;
            }
        }

        public bool Eidt(int id,Student stu)
        {
            try
            {
                var result = from stuNew in context.Student
                             where stuNew.Id == id
                             select stuNew;

                foreach (Student item in result)
                {
                    item.Name = stu.Name;
                    item.Age = stu.Age;
                    item.Address = stu.Address;
                    item.StudyDate = stu.StudyDate;
                }
                context.SubmitChanges();
                return true;
            }
            catch
            {
                return false;
            }
        }

Stu_Service代码

        public List<Student> SelectStudentsByID(string name)
        {
            return stu_dao.SelectStudentsByName(name);
        }
        public bool DeleteById(int id)
        {
            return stu_dao.DeleteById(id);
        }
        public int Insert(Student stu)
        {
            return stu_dao.Insert(stu);
        }
        public bool Eidt(int id, Student stu)
        {
            return stu_dao.Eidt(id,stu);
        }

1.增

新建一个Web窗体用作添加页面
输入你所需要增加的数据类型,以及页面格式

        <form id="form1" runat="server">
        <h5>添加</h5>

        <div>
            <label>姓名</label><asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
            <br />
            <label>年龄</label><asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
            <br />
            <label>地址</label><asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>
            <br />
            <label>日期</label><asp:TextBox ID="TextBox4" runat="server"></asp:TextBox>
            <br />
            <asp:Button ID="Button1" runat="server" Text="提交"  OnClick="Button1_Click" />


        </div>
    </form>

页面创建完成后,给button键添加功能。跳转到add页面的aspx.cs页面,给button调用在service中的添加方法以及跳转回主页面功能

       DateTime datetiem;
            try
            {
                datetiem = Convert.ToDateTime(this.TextBox4.Text);
            }
            catch
            {
                datetiem = DateTime.Now;
            }

            Student stu = new Student()
            {
                Name = this.TextBox1.Text,
                Age = Convert.ToInt32(this.TextBox2.Text),
                Address = this.TextBox3.Text,
                StudyDate = datetiem
            };

            int result = service.Insert(stu);

            Response.Redirect("Firstweb.aspx?msgI=" + result);

转回主页面,设置添加键,使添加键可以跳转到添加页面

          <asp:Button ID="Button1" runat="server" OnClick="Insert" Text="添加" />
          <table border="1">
                <tr>
                    <th>ID</th>
                    <th>姓名</th>
                    <th>年龄</th>
                    <th>地址</th>
                    <th>入学日期</th>
                    <th>操作</th>
                </tr>
          <table>

添加事件代码

        protected void Insert(object sender, EventArgs e)
        {
            Response.Redirect("Addweb.aspx");
        }

2.删

在首页中加入LinkButton控件,text为删除

<asp:Button ID="Button1" runat="server" OnClick="Insert" Text="添加" />
            <table border="1">
                <tr>
                    <th>ID</th>
                    <th>姓名</th>
                    <th>年龄</th>
                    <th>地址</th>
                    <th>入学日期</th>
                    <th>操作</th>
                </tr>
                <asp:Repeater ID="Repeater1" runat="server" OnItemCommand="Repeater1_ItemCommand">
                    <ItemTemplate>
                        <tr>
                            <td><%#Eval("id") %></td>
                            <td><%#Eval("name") %></td>
                            <td><%#Eval("age") %></td>
                            <td><%#Eval("address") %></td>
                            <td><%#Eval("studydate") %></td>
                            <td>
                                <asp:LinkButton ID="LinkButton1" runat="server" CommandName="delete" CommandArgument='<%#Eval("id") %>'>删除</asp:LinkButton>
                            </td>

                        </tr>
                    </ItemTemplate>
                </asp:Repeater>
            </table>

然后去apex.cs页面调用删除方法

        protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
        {
            string argName = e.CommandName;
            int argId = Convert.ToInt32(e.CommandArgument);
            if (argName=="delete")
            {
                bool result = service.DeleteById(argId);
                if (result)
                    Response.Redirect("Firstweb.aspx?msgD=" + "删除成功");
                else
                    Response.Redirect("Firstweb.aspx?msgD=" + "删除失败");
            }
            else
            {
                Response.Redirect("Eidtweb.aspx?msgID="+argId);
            }
        }

3.改

新增一个窗体作为修改界面
输入你所需要修改的数据类型,以及页面格式

<form id="form1" runat="server">
        <h5>修改</h5>
        <div>
            <label>ID</label><asp:TextBox ID="TextBox5" runat="server"></asp:TextBox>
            <br />
            <label>姓名</label><asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
            <br />
            <label>年龄</label><asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
            <br />
            <label>地址</label><asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>
            <br />
            <label>日期</label><asp:TextBox ID="TextBox4" runat="server"></asp:TextBox>
            <br />
            <asp:Button ID="Button1" runat="server" Text="提交" OnClick="Button1_Click" />
        </div>
    </form>

页面创建完成后,给button键添加功能。跳转到edit页面的aspx.cs页面,给button调用在service中的修改方法以及跳转回主页面功能

        protected void Button1_Click(object sender, EventArgs e)
        {
            DateTime datetiem;
            try
            {
                datetiem = Convert.ToDateTime(this.TextBox4.Text);
            }
            catch
            {
                datetiem = DateTime.Now;
            }
            Student stu = new Student()
            {
                Name = this.TextBox1.Text,
                Age = Convert.ToInt32(this.TextBox2.Text),
                Address = this.TextBox3.Text,
                StudyDate = datetiem
            };
            if (service.Eidt(msgID,stu))
                Response.Redirect("Firstweb.aspx?msgE=" + "修改成功");
            else
                Response.Redirect("Firstweb.aspx?msgE=" + "修改失败");
        }

在首页中加入LinkButton控件,text为修改

         <asp:Button ID="Button1" runat="server" OnClick="Insert" Text="添加" />
            <asp:TextBox ID="TextBox1" runat="server" AutoPostBack="True"></asp:TextBox>
            <table border="1">
                <tr>
                    <th>ID</th>
                    <th>姓名</th>
                    <th>年龄</th>
                    <th>地址</th>
                    <th>入学日期</th>
                    <th>操作</th>
                </tr>
                <asp:Repeater ID="Repeater1" runat="server" OnItemCommand="Repeater1_ItemCommand">
                    <ItemTemplate>
                        <tr>
                            <td><%#Eval("id") %></td>
                            <td><%#Eval("name") %></td>
                            <td><%#Eval("age") %></td>
                            <td><%#Eval("address") %></td>
                            <td><%#Eval("studydate") %></td>
                            <td>
                                <asp:LinkButton ID="LinkButton1" runat="server" CommandName="delete" CommandArgument='<%#Eval("id") %>'>删除</asp:LinkButton>
                                <asp:LinkButton ID="LinkButton2" runat="server" CommandName="edit" CommandArgument='<%#Eval("id") %>'>修改</asp:LinkButton>
                            </td>

                        </tr>
                    </ItemTemplate>
                </asp:Repeater>
            </table>

修改事件代码

Stu_Service service = new Stu_Service();
        int msgID;
        protected void Page_Load(object sender, EventArgs e)
        {
            msgID = Convert.ToInt32(Request.QueryString["msgID"]);
            this.TextBox5.Text = msgID.ToString();
        }
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,701评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,649评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,037评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,994评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,018评论 6 395
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,796评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,481评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,370评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,868评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,014评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,153评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,832评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,494评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,039评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,156评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,437评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,131评论 2 356

推荐阅读更多精彩内容