一、电商商城定制开发提前准备好数据库
1. 电商商城定制开发连接数据库服务器
电商商城定制开发这里我使用的是SQL Server 身份验证(也可使用windows 身份验证)
电商商城定制开发账户信息如下:
登录名:sa
密码:mima(电商商城定制开发输入时自动隐藏)
2. 电商商城定制开发建立数据库和表
这里我的数据库信息如下:
服务器名:HG66\MSSQLSERVER01
数据库名:DataBase01
表名:Table_1
三个属性分别为:ID、姓名、年龄
二、创建项目并引入命名空间
1. 创建一个项目(这里以控制台应用为例)
建议创建以 .NET Framework 为框架的项目,否则可能会出现“找不到类型名“SqlConnection“”这样的错误,原因为没有使用 .NET Framework 框架的项目默认没有引入和SQL相关的命名空间
解决方法:
2. 引入相关命名空间
using System.Data; // 表的命名空间using System.Data.SqlClient; // 和SQL相关的命名空间
- 1
- 2
三、使用ADO.NET访问数据库
1. 配置连接信息
在第一部分,已经知道了我数据库的信息:
服务器名:HG66\MSSQLSERVER01
登录名:sa
密码:mima
数据库名:DataBase01
方法一
先声明一个SqlConnectionStringBuilder对象,再设置这个对象的属性
// 声明一个SqlConnectionStringBuilder对象SqlConnectionStringBuilder scsb = new SqlConnectionStringBuilder();scsb.DataSource = "HG66\\MSSQLSERVER01"; // 设置数据源服务器,注意这里的单斜线变双斜线了scsb.UserID = "sa"; // 设置用户名scsb.Password = "mima"; // 设置密码scsb.InitialCatalog = "DataBase01"; // 设置要访问的数据库
- 1
- 2
- 3
- 4
- 5
- 6
方法二
先声明一个字符串,再设置字符串的值,字符串的值符合下面这个式子
"Data Source = (1); Database = (2); User Id = (3); Password = (4)"
- 1
(1)是数据源服务器
(2)是要访问的数据库 (Database改为Initial Catalog也可以)
(3)是用户名
(4)是密码
string ConStr = "Data Source = HG66\\MSSQLSERVER01; Database = DataBase01;" +"User Id = sa; Password = mima";
- 1
- 2
上面这种输入用户名和密码的是使用了 SQL Server 身份验证,如果要使用 windows 身份验证,只需要将 “User Id = sa; Password = mima” 改为 “Trusted_Connection = SSPI” 或 “Integrated Security = SSPI”
string ConnStr = "server = HG66\\MSSQLSERVER01; Database = DataBase01;" +"Trusted_Connection = SSPI";
- 1
- 2
2. 创建连接并打开数据库
使用方法一的 scsb 或方法二的 ConStr 来创建连接,创建连接后,需要通过这个连接打开数据库,这样才能操作数据库
方法一的 scsb 由于不是string类型,所以需要使用ToString()方法
// 创建连接SqlConnection SqlCon = new SqlConnection(scsb.ToString());// 打开数据库SqlCon.Open();
- 1
- 2
- 3
- 4
方法二的 ConStr 可以直接作为参数传进去
// 创建连接SqlConnection SqlCon = new SqlConnection(ConStr);// 打开数据库SqlCon.Open();
- 1
- 2
- 3
- 4
3. 执行SQL查询语句
我现有数据库的数据如下
假设我们要查找年龄为60的人的所有信息,在数据库应用中的操作如下
但是使用C#的话,①我们需要先使用一个字符串来存储SQL查询语句,②再通过这个字符串和已经打开的数据库来创建用于执行SQL语句的对象,此时的对象并未执行SQL查询语句,而是已经封装好,③于是我们执行对象的SQL查询语句并接受结果,④最后读取结果里的数据并输出
// 1、创建要执行的SQL查询语句string str = "select * from table_1 where 年龄 = 60";// 2、创建用于执行SQL查询语句的对象SqlCommand SqlCom = new SqlCommand(str, SqlCon);// 参数1:SQL语句字符串。参数2:已经打开的数据库// 3、执行对象的SQL查询语句并接受结果SqlDataReader Sdr = SqlCom.ExecuteReader();// 4、读取结果的数据while (Sdr.Read()){ Console.WriteLine("编号:" + Sdr["ID"].ToString()); Console.WriteLine("姓名:" + Sdr["姓名"].ToString()); Console.WriteLine("年龄:" + Sdr["年龄"].ToString());}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
如果所有的操作已完成,不要忘了关闭数据库
// 关闭数据库SqlCon.Close();
- 1
- 2
运行程序,结果如下,查询的结果与数据库应用中查询的结果相同
本程序的如下
using System;using System.Data; // 表的命名空间using System.Data.SqlClient; // 和SQL相关的命名空间namespace ConsoleApp1{ internal class Program { static void Main(string[] args) { // 方法一 SqlConnectionStringBuilder scsb = new SqlConnectionStringBuilder(); scsb.DataSource = "HG66\\MSSQLSERVER01"; // 设置数据源服务器 scsb.UserID = "sa"; // 设置用户名 scsb.Password = "mima"; // 密码 scsb.InitialCatalog = "DataBase01"; // 设置要访问的数据库 // 方法二 string ConStr = "Data Source = HG66\\MSSQLSERVER01; Database = DataBase01;" + "User Id = sa; Password = mima"; // 创建连接 SqlConnection SqlCon = new SqlConnection(ConStr); // 打开数据库 SqlCon.Open(); // 1、创建要执行的SQL语句 string str = "select * from table_1 where 年龄 = 60"; // 2、创建用于执行SQL语句的对象 SqlCommand SqlCom = new SqlCommand(str, SqlCon); // 3、执行SQL语句并接受结果 SqlDataReader Sdr = SqlCom.ExecuteReader(); // 4、读取结果的数据 while (Sdr.Read()) { Console.WriteLine("编号:" + Sdr["ID"].ToString()); Console.WriteLine("姓名:" + Sdr["姓名"].ToString()); Console.WriteLine("年龄:" + Sdr["年龄"].ToString()); } // 关闭数据库 SqlCon.Close(); Console.ReadKey(); } }}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53