通常在写网页时,都会需要与数据库连结,并且从中取出数据或查询比对等,
接下来是说明ASP.NET该如何与数据库进行连结。
首先,与数据库连结,就最先想到必须要跟网页说明与哪个数据库连结,
并且数据库使用者的账号、密码、位置等资讯必须说明,
通常在设定数据库连结时大多网站都会介绍如何从xxxxx.aspx.cs的网页中去连结,
但是由于自己在开发时常常遇到一件事情,就是数据库的使用者名称、密码会更改,
虽然说一般而言不太可能会去更改...但有时网页并非自己开发时,就会常发生,
而如果是在xxxxx.aspx.cs中建立数据库连结时,会因为必须连结的页面很多,
因此常常导致一改就要改很多页面的窘境,因此我建议在Web.config中建立数据库连结语法,
这样的好处是,如果需要修改使用者账号、密码,甚至数据库名称时只需要修改一次,
另外当有开发到较大的网站时,通常使用者权限会因页面权限的不同而有所不同,
而此种方法还可以在同一个地方管理所有连结语法。
接下来直接说明语法,而这边也一并说明当使用的是MySQL与MSSQL时的差别,
首先是Web.config的连结与法设定,
文件名称:Web.config
以上的name字段中分别有MSSQL_DBconnect及MySQL_DBconnect两个名称,
分别就是说明MSSQL及MySQL连结的语法,另外使用MySQL时必须自行导入MySQL的dll档,
另外,语法中的127.0.0.1请修改为数据库位置(正常初学者数据库及开发环境相同),
DB_Username、DB_Password、DB_Name请依照自己的设定做更正。
接下来,就是说明该如何在xxxxx.aspx.cs套用Web.config的连结与法了。
在想要连结数据库的地方设定增加语法,
using System.Data.SqlClient;
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["MSSQL_DBconnect"].ConnectionString);
//MySQL连结:
using MySql.Data.MySqlClient;
MySqlConnection conn = new MySqlConnection(ConfigurationManager.ConnectionStrings["MySQL_DBconnect"].ConnectionString);
其中的MySQL_DBconnect与MSSQL_DBconnect就是对应到Web.config中所新增的名称了。
这样就可以将ASP.NET连结至数据库了。
接下来,以一个简单的例子来读取数据库中的一笔数据,
SqlDataReader reader; //声明一个DataReader
SqlConnection connStr = new SqlConnection(ConfigurationManager.ConnectionStrings["MSSQL_connect"].ConnectionString);
String select = "select * from USER where Name = God"; //声明SQL语法的字符串,这边可依照自行需求修改
connStr.Open(); //开启数据库的连结
SqlCommand cmd = new SqlCommand(select, connStr); //声明SqlCommand并将SQL语法及连结语法带入
reader = cmd.ExecuteReader(); //使用SqlCommand的ExecuteReader()方法,
//ExecuteReader()为查询时使用,如要删除、修改、新增,须改为ExecuteNonQuery()方法
while (reader.Read()) //使用无限循环将SQL语法查询的结果每笔查阅一次
{
String NameStr = (String)reader["Name"];//将数据库中Name字段存放于NameStr字符串中
int IDint = (int)reader["ID"]; //将数据库中ID字段存放于IDint整数中,不同型态请自行更改
//这边建议字段与字符串相同,方便管理,怕人搞混所以这边用不同名称
}
connStr.Close(); //关闭数据库的连结
//MySQL语法:说明与上面MSSQL说明相同,但通常Sql的字眼会变成MySql
MySqlDataReader reader;
MySqlConnection connStr = new MySqlConnection(ConfigurationManager.ConnectionStrings["MySQL_connect"].ConnectionString);
String select = "select * from USER where Name = God";
connStr.Open();
MySqlCommand cmd = new MySqlCommand(select, connStr);
reader = cmd.ExecuteReader();
while (reader.Read())
{
String Name = (String)reader["Name"];
int IDint = (int)reader["ID"];
}
connStr.Close();
上面例子中我将字符串及整数声明在循环内,所以只有循环内可使用该字符串及整数,
所以有不同需求的请自行更改。
由于例子中SQL语法已针对特定Name筛选,如果有不同的需求,建议可以在循环内用if判断筛选
※以上如有错字或错误请告知,谢谢。
原文地址:https://www.cnblogs.com/chinatrump/p/11505138.html