當前位置:首頁 » 操作系統 » 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對象遍歷即可取出查詢的數據。

    至此,增刪改查都可以實現了。

    熱點內容
    編程一刻 發布: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
    開封愛編程 發布:2025-01-31 12:33:27 瀏覽:294