当前位置:首页 » 操作系统 » aspx连接数据库

aspx连接数据库

发布时间: 2023-09-05 19:10:40

‘壹’ ASP数据库连接 asp怎样与sql数据库连接

前两日,在CSDN看了篇文章《10个程序员必须学会接受的残酷真相》,其中有一条:

“互联网其实就是存储在表中的数据”,这句话说的很有道理,也提醒我们开发人员需要重视数据库操作;

本篇讲述asp.net如何连接数据库,考虑到数据库种类较多,这里就以asp.net连接SQL Server数据库举例

  • PS:以上数据库操作并不严谨,仅用于示范,数据库连接

    读者在实际使用对数据库进行crud操作时,参考微软官方文档

  • ‘贰’ ASP 怎么连接SQL数据库

    ASP与SQL数据库连接语句具体如下:

    Set conn = Server.CreateObject("ADODB.Connection")
    connstr = "provider=Sqloledb;server=服务器名;uid=用户名;pwd=密码;database=数据库名"
    conn.Open connstr
    If Err Then
    err.Clear
    Set conn = Nothing
    Response.Write "数据库连接出错,请检查连接字串"
    Response.End

    (2)aspx连接数据库扩展阅读:

    SQL常用命令使用方法:

    (1) 数据记录筛选:

    sql="select * from 数据表 where 字段名=字段值 order by 字段名 "

    sql="select * from 数据表 where 字段名 like ‘%字段值%‘ order by 字段名 "

    sql="select top 10 * from 数据表 where 字段名 order by 字段名 "

    sql="select * from 数据表 where 字段名 in (‘值1‘,‘值2‘,‘值3‘)"

    sql="select * from 数据表 where 字段名 between 值1 and 值2"

    (2) 更新数据记录:

    sql="update 数据表 set 字段名=字段值 where 条件表达式"

    sql="update 数据表 set 字段1=值1,字段2=值2 …… 字段n=值n where 条件表达式"

    (3) 删除数据记录:

    sql="delete from 数据表 where 条件表达式"

    sql="delete from 数据表" (将数据表所有记录删除)

    ‘叁’ 用c# asp.net做实现与数据库的连接,增删改查

    因为本例涉及到数据库,所以在开始之前请先在数据库里新建一个名为“test”的数据库,里面新建一个表:“users”,表里有三个字段:
    id(int,不可为null,设为标识符,自增),name(nvarcher(50)),age(nvarchar(50))

    可以先在表里预设几条数据。

    然后废话不多说,首先是 .aspx里的代码

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="test.aspx.cs" Inherits="test" %>

    <!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>
    <table runat="server" id="table1">
    <tr>
    <td>name:</td>
    <td>
    <asp:TextBox ID="tbName" runat="server"></asp:TextBox>
    </td>
    </tr>
    <tr>
    <td>age:</td>
    <td>
    <asp:TextBox ID="tbAge" runat="server"></asp:TextBox>
    </td>
    </tr>
    <tr>
    <td><asp:Button runat="server" ID="BtnAdd" text="add" OnClick="BtnAdd_Click"/></td>
    <td><asp:Button runat="server" ID="BtnDel" text="del" OnClick="BtnDel_Click"/></td>
    <td><asp:Button runat="server" ID="BtnUpdate" text="update" OnClick="BtnUpdate_Click"/></td>
    <td><asp:Button runat="server" ID="BtnSelect" text="select" OnClick="BtnSelect_Click"/></td>
    </tr>
    </table>
    </div>
    </form>
    </body>
    </html>
    这段代码中只有一个table,里面包含两个textbox用于显示name和age,还有四个按钮,分别用于增删改查,这6个控件都是asp标签,和正常的html标签类似,只不过多了一些ASP.NET封装的属性,方便与后台通信,后台可以通过其属性runat="server"知道控件运行于服务器,然后通过id即可访问到该控件,进而控制控件各种属性和显示。
    下面是.aspx.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.SqlClient;
    using System.Data.Sql;
    using System.Data;

    public partial class test : System.Web.UI.Page
    {
    //数据连接最基本需要的两个对象
    private SqlConnection conn = null;
    private SqlCommand cmd=null;
    //private SqlDataAdapter adapter = null;
    //为了方便,设为全局对象的sql语句
    private string sql = null;
    //公用 打开数据库的方法
    public void openDatabase()
    {
    conn = new SqlConnection();
    conn.ConnectionString = "Integrated Security=SSPI;Data Source=(local);initial catalog=test;User ID =你的用户名;password=你的密码";
    if (conn.State == ConnectionState.Closed)
    {
    conn.Open();
    //Response.Write("<script>alert('Connected!');</script>");
    }
    }
    //默认加载页面的方法 找到年龄最大的加载
    //有些问题,年龄不能相同,加载中前台的textbox里只能显示一条记录,数据拿到之后有多条只显示一条
    public void load()
    {
    openDatabase();
    cmd = new SqlCommand("select * from users where age=(select max(age) from users)", conn);
    SqlDataReader dr = cmd.ExecuteReader();
    if (dr.Read())
    {
    tbName.Text = (String)dr[1].ToString().Trim();
    tbAge.Text = (String)dr[2].ToString().Trim();
    }
    conn.Close();

    }
    //根据sql语句加载信息,重载两个textbox
    public void load(String sql)
    {
    openDatabase();
    cmd = new SqlCommand(sql, conn);
    SqlDataReader dr = cmd.ExecuteReader();
    while (dr.Read())
    {
    tbName.Text = (String)dr[1].ToString().Trim();
    tbAge.Text = (String)dr[2].ToString().Trim();
    }
    conn.Close();
    }
    //封装的数据库语句执行的方法
    public void execute(String sql)
    {
    openDatabase();
    cmd = new SqlCommand(sql, conn);
    cmd.ExecuteNonQuery();
    conn.Close();

    }

    //页面加载时ASP.NET首先会调用这个方法
    protected void Page_Load(object sender, EventArgs e)
    {
    if (!IsPostBack) { load(); }//如果页面不是刷新,则执行,这个很重要
    }
    //四个按钮的方法,增删改查
    protected void BtnAdd_Click(object sender, EventArgs e)
    {
    sql = "insert into users(name,age) values('"+ tbName.Text.ToString().Trim() +"','" + tbAge.Text.ToString().Trim() +"')";
    execute(sql);
    }

    protected void BtnDel_Click(object sender, EventArgs e)
    {
    sql = "delete from users where name='" + tbName.Text.ToString().Trim() + "' and age='" + tbAge.Text.ToString().Trim()+"'";
    execute(sql);
    load();
    }

    protected void BtnUpdate_Click(object sender, EventArgs e)
    {
    sql = "update users set age='"+ tbAge.Text.ToString().Trim()+"' where name='" + tbName.Text.ToString().Trim() + "'";
    execute(sql);
    }

    protected void BtnSelect_Click(object sender, EventArgs e)
    {
    sql = "select * from users where name='" + tbName.Text.ToString().Trim() + "'";
    load(sql);
    }
    }
    代码里没有任何异常处理的代码,没有验证,没有提示,只是很粗陋的东西,只为了让初学者明白连接数据库,操作数据的核心而已,所以在运行时如果出错不要慌张,很有可能你输入了我没有预料到的情况。

    这时细读错误提示,通过理解代码,函数意图,然后找出我写的函数的错误,你会对代码有更好的理解,同时你也会思考如何避免用户误操作的问题吧。

    下面稍微解说下代码,主要是后台的代码。

    连接数据库,操作数据库主要需要两个类,一个是SqlConnection,一个是SqlCommand

    SqlConnection用于连接数据库,打开数据库,关闭数据库。

    连接数据库需要特定格式,特定参数的字符串,如代码中写的,服务器地址,数据库名称,用户名密码,以及其他参数

    SqlCommand用于操作数据库,先创建基于一个特定SqlConnection对象的SqlCommand对象,通过ExecuteNonQuery方法执行给定的sql语句。

    增删改都可以只是这样就操作成功,但查询因为需要把数据读到一个地方,所以有一个新的对象出现了:SqlDataReader

    通过SqlCommand对象的ExecuteReader方法得到一个SqlDataReader对象,SqlDataReader对象包含数据集,通过对SqlDataReader对象遍历即可取出查询的数据。

    至此,增删改查都可以实现了。

    热点内容
    java二级考试历年真题 发布:2025-01-31 13:50:31 浏览:171
    编程一刻 发布:2025-01-31 13:36:44 浏览:585
    编程小草出土 发布:2025-01-31 13:33:27 浏览:579
    如何设置服务器屏蔽你的ip 发布:2025-01-31 13:25:58 浏览:243
    扣扣的独立密码是什么密码 发布:2025-01-31 13:23:42 浏览:132
    pythonlist的用法 发布:2025-01-31 12:56:15 浏览:130
    搭建美国节点服务器 发布:2025-01-31 12:55:27 浏览:858
    对韩java 发布:2025-01-31 12:50:44 浏览:96
    访问四平 发布:2025-01-31 12:50:36 浏览:667
    英雄联盟服务器广东地址 发布:2025-01-31 12:41:49 浏览:382