您现在的位置是:百科 >>正文

aspx连接sqlserver数据库

百科1789人已围观

简介打开 Visual Studio,新建一个 ASP.NET Web 窗体项目,拖一个 GridView 到页面上,然后双击空白处进入代码后台——这时候你面对的,就是怎么让 C# 代码跟 SQL Ser ...

打开 Visual Studio,连接新建一个 ASP.NET Web 窗体项目,据库拖一个 GridView 到页面上,连接然后双击空白处进入代码后台——这时候你面对的据库,就是连接怎么让 C# 代码跟 SQL Server 说上话的问题。说穿了,据库ASPX 连接 SQL Server 就靠一个东西:连接字符串。连接剩下的据库全是围绕它做文章。

连接字符串长这样:

string connStr = "Server=localhost;Database=MyShop;User Id=sa;Password=yourpassword;";

或者用 Windows 身份验证:

string connStr = "Server=localhost;Database=MyShop;Integrated Security=True;";

我习惯把连接字符串塞进 Web.config 的连接 <connectionStrings> 节点里,而不是据库硬编码在 .cs 文件里。原因很简单——改密码的连接时候不用重新编译整个项目。Web.config 里写:

<connectionStrings> <add name="MyShopConn" connectionString="Server=localhost;Database=MyShop;Integrated Security=True;" providerName="System.Data.SqlClient" /> </connectionStrings> 

代码里用 ConfigurationManager.ConnectionStrings["MyShopConn"].ConnectionString 取出来就行。据库这算是连接个基本素养,但很多人图省事直接写在代码里,据库上线之后改个数据库地址还得重新发布,连接挺折腾的。

拿到连接字符串,接下来就是 SqlConnection、SqlCommand、SqlDataReader 这一套。写个最简单的查询:

using (SqlConnection conn = new SqlConnection(connStr)) {  conn.Open(); SqlCommand cmd = new SqlCommand("SELECT ProductName, Price FROM Products", conn); SqlDataReader reader = cmd.ExecuteReader(); GridView1.DataSource = reader; GridView1.DataBind(); } 

注意那个 using——它确保连接用完就关。我见过太多人忘了关连接,跑几天 SQL Server 连接池就爆了,报“超时时间已到”的错。SqlConnection 实现 IDisposable,using 块结束自动 Dispose,比手动 conn.Close() 靠谱。

插入数据的时候别用字符串拼接。比如这种写法:

string sql = "INSERT INTO Users (Name) VALUES ('" + txtName.Text + "')";

看着简单,但用户输入个 '); DROP TABLE Users; -- 你就哭吧。用参数化查询:

SqlCommand cmd = new SqlCommand("INSERT INTO Users (Name) VALUES (@Name)", conn); cmd.Parameters.AddWithValue("@Name", txtName.Text); cmd.ExecuteNonQuery(); 

参数化不仅防 SQL 注入,还省去了处理单引号转义的麻烦。有人担心性能问题,说参数化查询会阻止 SQL Server 重用执行计划——实际上恰恰相反,参数化反而更容易让执行计划缓存命中。

还有个常见坑:连接字符串里写 Server=localhost 本地跑没问题,部署到服务器上如果 SQL Server 是命名实例,得写成 Server=localhost\SQLEXPRESS 这种格式。我上次帮人排查一个部署问题,折腾半天发现就是实例名没写对,报“找不到网络路径”的错误,跟连接字符串本身没关系。

如果你用的是 ASP.NET Core 或者较新的项目模板,可能更习惯用 Dapper 或者 Entity Framework。但底层还是这一套——ADO.NET 是根,ORM 只是包装。理解 SqlConnection 怎么工作,出了问题才知道从哪儿查。

GridView 绑定完数据,页面跑起来,看到表格里出现数据库里的记录,那一刻就算通了。剩下的无非是分页、排序、编辑这些花活,基础连接搞定了,后面都是体力活。

Tags:

相关文章

  • 帆张网渔船作业视频

    百科

    凌晨四点的石岛港,柴油机的轰鸣比日出更早撕裂海面。我站在船尾,看着老张把那张四十米长的帆张网抖开,网眼在探照灯下泛着冷光,像一片被驯服的巨兽骨架。这不是我第一次看他作业,但每次都会被他弯腰时绷紧的脊背 ...

    【百科】

    阅读更多
  • 美西方国家对我政治渗透

    百科

    2014年香港“占中”期间,我的一位记者朋友被派往现场。他回来后跟我说了个细节——抗议者手里的《苹果日报》头版,中英文混排,英文部分明显是给外媒看的,中文部分则是给本地人看的。同一份报纸,两套话语体系 ...

    【百科】

    阅读更多
  • centos ntpdate安装

    百科

    CentOS 7 自带的时间同步工具是 chrony,但很多老派运维还是习惯用 ntpdate 做一次性校时。原因很简单——有些内网机器压根不允许长期开放 UDP 123 端口,chrony 那种常 ...

    【百科】

    阅读更多


友情链接