数据库连接

从工具箱中把SqlDataSource控件拖放到页面aspx中。

在这里插入图片描述

点击配置数据源可以选择连接目标。默认是没有选项的,我们点击新建连接,然后从身份验证中选择想连接的服务器是默认的windows身份验证还是sql server验证,我这里是windows身份验证,它的服务器名是一个点(.)然后选择数据库,最后测试下连接即可确定。

在这里插入图片描述

随即我们会发现从web.config文件中看到多了些代码:

<connectionStrings>
    <add name="studentsConnectionString" connectionString="Data Source=.;Initial Catalog=students;Integrated Security=True"
      providerName="System.Data.SqlClient" />
</connectionStrings>

这些就是公共的数据库连接配置。

connectionStrings节点两种方式:

<connectionStrings> 
第一种:
<add name="名称" connectionString="Data Source=服务器名;Initial Catalog=数据库名;User ID=用户;Password=密码" providerName="System.Data.SqlClient" />
第二种:
<add name="名称" connectionString="server=服务器名;database=数据库名; Ueer ID=用户;Password=密码" providerName="System.Data.SqlClient" />
</connectionStrings> 
在页面还可以这样引用<%$ ConnectionString:Name%>.

接下来看回aspx文件:

<%--数据库配置--%>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:studentsConnectionString %>" >
</asp:SqlDataSource>

很明显它帮我们引入了web.config文件中的ConnectionString配置对象。

至此,数据库连接操作完成。

查询

查询之前,我们需要把查询的命令给它加上去。所以,我们可以在SqlDataSource控件中绑定查询命令SelectCommand属性。

<%--数据库配置--%>
<asp:SqlDataSource 
    ID="SqlDataSource1" 
    runat="server" 
    ConnectionString="<%$ ConnectionStrings:studentsConnectionString %>" 
    SelectCommand="SELECT * FROM [Table1]">
</asp:SqlDataSource>

然后我们从工具箱中拖动一个GridView控件进行查看数据库表,GridView可以绑定SqlDataSource控件得到查询信息。

<%--查询--%>
<h1>查询数据</h1>
<asp:GridView ID="GridView1" runat="server" DataSourceID="SqlDataSource1" AllowPaging="True" AllowSorting="True" AutoGenerateColumns="False">
    <Columns>
        <asp:BoundField DataField="id" HeaderText="id" SortExpression="id" />
        <asp:BoundField DataField="name" HeaderText="name" SortExpression="name" />
    </Columns>
</asp:GridView>

从上方能看到,DataSourceID属性能够绑定SqlDataSource控件的ID(SqlDataSource1),然后在控件中手写入Columns控件,可以装载其他控件,我们再拖入BoundField控件,让其绑定id,name进行渲染操作,这里就相当于一个for循环操作了,注意:绑定的id,name属性都是表字段名称。

再运行程序打开浏览器就看到查询数据了。

插入

插入之前,我们给SqlDataSource控件写上插入命令,values值我们可以绑定成传入的形参形式表示(@id,@name)。

<%--数据库配置--%>
<asp:SqlDataSource 
    ID="SqlDataSource1" 
    runat="server" 
    ConnectionString="<%$ ConnectionStrings:studentsConnectionString %>" 
    SelectCommand="SELECT * FROM [Table1]" 
    InsertCommand="insert into [Table1] values(@id,@name);">
</asp:SqlDataSource>

我们拖动一些新的表单进行插入操作。

<%--插入--%>
<h1>插入数据</h1>
<asp:Label ID="Label2" runat="server" Text="学号:"></asp:Label>
<asp:TextBox ID="StuId" runat="server"></asp:TextBox>
<br />
<asp:Label ID="Label3" runat="server" Text="姓名:"></asp:Label>
<asp:TextBox ID="StuName" runat="server"></asp:TextBox>
<br />
<asp:Button ID="AddButton" runat="server" Text="添加" OnClick="AddButton_Click1"/><br />
<asp:Label ID="AddMsg" runat="server" Text=""></asp:Label>

新数据输入完毕之后点击按钮执行AddButton_Click1插入事件。于是我们开始从CS文件中写逻辑了。

protected void AddButton_Click1(object sender, EventArgs e)
{
    //获取表单数据
    string id = StuId.Text;
    string name = StuName.Text;

    //执行插入
    SqlDataSource1.InsertParameters.Add("id", id);
    SqlDataSource1.InsertParameters.Add("name", name);

    //SqlDataSource1.Insert() 返回影响行数大于0则
    if (SqlDataSource1.Insert() > 0)
    {
        AddMsg.Text = "数据添加成功";
        
        //刷新页面(重定向)
        Response.Redirect("/WebForm1.aspx");
        return;
    }
    AddMsg.Text = "数据添加失败";
}

修改

修改之前,我们给SqlDataSource控件写上修改命令,values值我们可以绑定成传入的形参形式表示。

<%--数据库配置--%>
<asp:SqlDataSource
    ID="SqlDataSource1"
    runat="server"
    ConnectionString="<%$ ConnectionStrings:studentsConnectionString %>"
    SelectCommand="SELECT * FROM [Table1]"
    InsertCommand="insert into [Table1] values(@id,@name);"
    UpdateCommand="update [Table1] set name=@name where id=@id;">
</asp:SqlDataSource>

同理,添加表单做修改操作。

<%--修改--%>
<h1>修改数据</h1>
<br />
<asp:Label ID="Label6" runat="server" Text="学号:"></asp:Label>
<asp:TextBox ID="StuId2" runat="server"></asp:TextBox>
<br />
<asp:Label ID="Label7" runat="server" Text="姓名:"></asp:Label>
<asp:TextBox ID="StuName2" runat="server"></asp:TextBox>
<br />
<asp:Button ID="UpdateButton" runat="server" Text="更新" OnClick="UpdateButton_Click"/>
<asp:Label ID="UpdateMsg" runat="server"></asp:Label>

CS文件中写UpdateButton_Click修改事件。

protected void UpdateButton_Click(object sender, EventArgs e)
{
    string id = StuId2.Text;
    string name = StuName2.Text;

    if (String.IsNullOrEmpty(id) || String.IsNullOrEmpty(name) )
    {
        UpdateMsg.Text = "数据项不能为空";
        return;
    }

    SqlDataSource1.UpdateParameters.Add("id", id);
    SqlDataSource1.UpdateParameters.Add("name", name);

    if (SqlDataSource1.Update() > 0)
    {
        UpdateMsg.Text = "数据更新成功";
        Response.Redirect("/WebForm1.aspx");
        return;
    }
    UpdateMsg.Text = "数据更新失败";
}

删除

删除之前,我们给SqlDataSource控件写上删除命令,values值我们可以绑定成传入的形参形式表示。

<%--数据库配置--%>
<asp:SqlDataSource
    ID="SqlDataSource1"
    runat="server"
    ConnectionString="<%$ ConnectionStrings:studentsConnectionString %>"
    SelectCommand="SELECT * FROM [Table1]"
    InsertCommand="insert into [Table1] values(@id,@name);"
    UpdateCommand="update [Table1] set name=@name where id=@id;"
    DeleteCommand="delete from [Table1] where id=@id;">
</asp:SqlDataSource>

我们增加一个表单来获取用户即将要删除的ID号。

<%--删除--%>
<h1>删除数据</h1>
<br />
<asp:Label ID="Label10" runat="server" Text="学号:"></asp:Label>
<asp:TextBox ID="StuId3" runat="server"></asp:TextBox>
<br />
<asp:Button ID="DeleteButton" runat="server" Text="删除" style="width: 40px"  OnClick="DeleteButton_Click" />
<asp:Label ID="DeleteMsg" runat="server"></asp:Label>

CS文件中写DeleteButton_Click删除事件。

protected void DeleteButton_Click(object sender, EventArgs e)
{
    string id = StuId3.Text;
    if (String.IsNullOrEmpty(id))
    {
        DeleteMsg.Text = "数据项不能为空";
        return;
    }
    SqlDataSource1.DeleteParameters.Add("id", id);
    if (SqlDataSource1.Delete() > 0)
    {
        DeleteMsg.Text = "数据删除成功";
        Response.Redirect("/WebForm1.aspx");
        return;
    }
    DeleteMsg.Text = "数据删除失败";
}

全部代码

aspx

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

<!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">

        <%--数据库配置--%>
        <asp:SqlDataSource
            ID="SqlDataSource1"
            runat="server"
            ConnectionString="<%$ ConnectionStrings:studentsConnectionString %>"
            SelectCommand="SELECT * FROM [Table1]"
            InsertCommand="insert into [Table1] values(@id,@name);"
            DeleteCommand="delete from [Table1] where id=@id;"
            UpdateCommand="update [Table1] set name=@name where id=@id;">
        </asp:SqlDataSource>

        <%--查询--%>
        <h1>查询数据</h1>
        <asp:GridView ID="GridView1" runat="server" DataSourceID="SqlDataSource1" AllowPaging="True" AllowSorting="True" AutoGenerateColumns="False">
            <Columns>
                <asp:BoundField DataField="id" HeaderText="id" SortExpression="id" />
                <asp:BoundField DataField="name" HeaderText="name" SortExpression="name" />
            </Columns>
        </asp:GridView>
        <br />
        <br />

        <%--插入--%>
        <h1>插入数据</h1>
        <asp:Label ID="Label2" runat="server" Text="学号:"></asp:Label>
        <asp:TextBox ID="StuId" runat="server"></asp:TextBox>
        <br />
        <asp:Label ID="Label3" runat="server" Text="姓名:"></asp:Label>
        <asp:TextBox ID="StuName" runat="server"></asp:TextBox>
        <br />
        <asp:Button ID="AddButton" runat="server" Text="添加" OnClick="AddButton_Click1"/><br />
        <asp:Label ID="AddMsg" runat="server" Text=""></asp:Label>
        <br />
        <br />

        <%--修改--%>
        <h1>修改数据</h1>
        <br />
        <asp:Label ID="Label6" runat="server" Text="学号:"></asp:Label>
        <asp:TextBox ID="StuId2" runat="server"></asp:TextBox>
        <br />
        <asp:Label ID="Label7" runat="server" Text="姓名:"></asp:Label>
        <asp:TextBox ID="StuName2" runat="server"></asp:TextBox>
        <br />
        <asp:Button ID="UpdateButton" runat="server" Text="更新"
            OnClick="UpdateButton_Click"/>
        <asp:Label ID="UpdateMsg" runat="server"></asp:Label>
        <br />
        <br />


        <%--删除--%>
        <h1>删除数据</h1>
        <br />
        <asp:Label ID="Label10" runat="server" Text="学号:"></asp:Label>
        <asp:TextBox ID="StuId3" runat="server"></asp:TextBox>
        <br />
        <asp:Button ID="DeleteButton" runat="server" Text="删除"
             style="width: 40px" OnClick="DeleteButton_Click"
         />
        <asp:Label ID="DeleteMsg" runat="server"></asp:Label>
        <br />
        <br />


    </form>
</body>
</html>

cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;

namespace dataDemo
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void AddButton_Click1(object sender, EventArgs e)
        {
            string id = StuId.Text;
            string name = StuName.Text;

            SqlDataSource1.InsertParameters.Add("id", id);
            SqlDataSource1.InsertParameters.Add("name", name);

            if (SqlDataSource1.Insert() > 0)
            {
                AddMsg.Text = "数据添加成功";
                Response.Redirect("/WebForm1.aspx");
                return;
            }
            AddMsg.Text = "数据添加失败";
        }
        protected void UpdateButton_Click(object sender, EventArgs e)
        {
            string id = StuId2.Text;
            string name = StuName2.Text;

            if (String.IsNullOrEmpty(id) || String.IsNullOrEmpty(name) )
            {
                UpdateMsg.Text = "数据项不能为空";
                return;
            }

            SqlDataSource1.UpdateParameters.Add("id", id);
            SqlDataSource1.UpdateParameters.Add("name", name);

            if (SqlDataSource1.Update() > 0)
            {
                UpdateMsg.Text = "数据更新成功";
                Response.Redirect("/WebForm1.aspx");
                return;
            }
            UpdateMsg.Text = "数据更新失败";
        }

        protected void DeleteButton_Click(object sender, EventArgs e)
        {
            string id = StuId3.Text;
            if (String.IsNullOrEmpty(id))
            {
                DeleteMsg.Text = "数据项不能为空";
                return;
            }
            SqlDataSource1.DeleteParameters.Add("id", id);
            if (SqlDataSource1.Delete() > 0)
            {
                DeleteMsg.Text = "数据删除成功";
                Response.Redirect("/WebForm1.aspx");
                return;
            }
            DeleteMsg.Text = "数据删除失败";
        }

    }
}
文章目录