C#数据库连接
Posted chenxiaojie
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#数据库连接相关的知识,希望对你有一定的参考价值。
对数据库连接烦恼的我,今天为了克服这个困难今天特地来写一个关于数据库连接的博客。
各位多多指教!!!
小弟定虚??向学!!!
using System;
using System.Data.SqlClient;
namespace 数据库连接及使用
class 连接
//创建连接对象
private SqlConnection conn = null;
//创建连接所需要的信息
private string ConnStr = "server = .;database = BookShop;uid = sa;pwd = 123456";//我的数据库是用sa进行登录的,密码是123456
//做一个打开设置
public bool Openconnection()
if(conn == null)
conn = new SqlConnection(ConnStr);
try
conn.Open();
return true;
catch (Exception)
return false;
//做一个关闭设置
public void CloseConnection()
conn.Close();
conn.Dispose();
//对数据库进行操作
public SqlDataReader ExecReader(string sqlQuery)
//创建使用命令的对象
SqlCommand cm = new SqlCommand();
//设置让对象进行连接
cm.Connection = conn;
//sqlQuery是对象要用的命令
cm.CommandText = sqlQuery;
try
//执行查询操作
SqlDataReader dr = cm.ExecuteReader();//执行用的
return dr; catch (Exception) return null;
1 using System;
2 using System.Collections.Generic;
3 using System.Data.SqlClient;
4
5 namespace 数据库连接及使用
6
7 class 使用
8
9 public List<String> GetBook()
10
11 //创建存储的集合
12 List<String> boooks = new List<string>();
13 //创建数据库对象
14 连接 db = new 连接();
15 if (db.Openconnection())
16
17 SqlDataReader dr = db.ExecReader("select * from Books");
18 if (dr!=null)
19
20 while (dr.Read())//Read()是对dr数据进行判断,前进下一行,如果有就返回true
21
22 boooks.Add((int)dr["ID"] + "");
23
24
25 //关闭数据库读取
26 dr.Close();
27 //关闭数据库连接
28 db.CloseConnection();
29
30 return boooks;
31
32
33
有了使用,就要有验证的地方!!!
using System;
using System.Collections.Generic;
namespace 数据库连接及使用
class Program
static void Main(string[] args)
使用 m = new 使用();
List<String> arr = m.GetBook();
foreach (object o in arr)
Console.WriteLine(o.ToString() + " ");
Console.ReadKey();
还有,就是把数据库建起来
create database BookShop
go
use BookShop
go
create table Books
(
ID int identity(1,1) primary key,
[Type] nvarchar(20) not null,
Name nvarchar(100) not null,
Author nvarchar(30) not null,
Price decimal check(Price>0) not null,
Cover nvarchar(100) not null,
TotalNum bigint check(TotalNum>10) not null,
SaleNum bigint not null
)
go
insert into Books([Type],Name,Author,Price,Cover,TotalNum,SaleNum)
values(‘小说‘,‘三国演义‘,‘罗贯中‘,49.99,‘‘,100,1)
insert into Books([Type],Name,Author,Price,Cover,TotalNum,SaleNum)
values(‘小说‘,‘红楼梦‘,‘曹雪芹‘,69.99,‘‘,100,1)
insert into Books([Type],Name,Author,Price,Cover,TotalNum,SaleNum)
values(‘小说‘,‘水浒传‘,‘施耐庵‘,39.99,‘‘,100,1)
insert into Books([Type],Name,Author,Price,Cover,TotalNum,SaleNum)
values(‘小说‘,‘西游记‘,‘吴承恩‘,29.99,‘‘,100,1)
insert into Books([Type],Name,Author,Price,Cover,TotalNum,SaleNum)
values(‘小说‘,‘封神榜‘,‘姜子牙‘,999.99,‘‘,100,1)
select * FROM Books
执行语句还有很多,还有几个很常用的:
ExecuteNonQuery()执行命令对象的SQL语句,返回一个int 类型的变量,返回数据库操作之后影响的行数。适合用来验证对数据库进行增删改的情况。
ExecuteScalar()也可以执行sql语句。如果SQL语句是Select查询,则仅仅返回查询结果集中第一行第一列,而忽略其他行和列。如果SQL语句不是Select查询,则这个返回结果没任何作用。
1、ExecuteReader方法存在的目的:尽可能快的对数据库进行查询并得到结果
2、ExecuteReader 返回一个DataReader对象,如果在SqlCommand对象中调用,
则返回SqlDataReader,如果在OledbCommand对象中调用,返回的是OledbDataReader,可以调用DataReader的方法和属性迭代处理结果集。
望路过的大哥多多指教
以上是关于C#数据库连接的主要内容,如果未能解决你的问题,请参考以下文章