對數據庫連接煩惱的我,今天為了克服這個困難今天特地來寫一個關於數據庫連接的博客。
各位多多指教!!!
小弟定虛💗向學!!!
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的方法和屬性迭代處理結果集。
望路過的大哥多多指教