C#數據庫
一、連接數據庫
1.定義連接數據庫的字符串
string source = "server=(local); integrated security=SSPI; database=test";
2.數據庫連接開啟、關閉
var conn = new SqlConnection(source);
conn.Open()
// do something
conn.Close()
3.對數據庫連接進行優化
數據庫連接屬於稀缺資源的使用,使用完後必須立即關閉避免出現資源匱乏的情況。因此關閉數據庫連接應是強制的,可以通過兩種方式來確保數據庫資源使用完后立即釋放。
3.1 使用try...catch...finally語句塊
try
{
conn.Open();
// Do something
}
catch (SqlException e)
{
// Log the exception
}
finally
{
conn.Close();
}
3.2 使用using語句塊
using (SqlConnction conn = new SqlConnection(source))
{
conn.Open();
// Do something
}
3.3 將using語句塊與try...catch...finally語句塊結合
try
{
using (var conn = new SqlConnction(source))
{
conn.Open();
// Do something
conn.Close();
}
}
catch (SqlException e)
{
Console.WriteLine(e.Message);
}
二、操作數據庫
1. SELECT操作
// 連接數據庫語句在這寫
string select = "SELECT UserName FROM _Users";
// 開啟數據庫語句在這寫
var cmd = new SqlCommand(select, conn);
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
Console.WriteLine(reader[]);
}
// 關閉數據庫語句在這寫
2. INSERT操作
// 連接數據庫語句在這寫 string insert = "INSERT INTO _Users (Id, Name, UserName, Password, Score) VALUES (@ID, @NAME, @USERNAME, @PASSWORD, @SCORE)"; // 開啟數據庫語句在這寫 var cmd = new SqlCommand(insert, conn);
SqlParameter[] param = {
new SqlParameter("@ID", user.Id),
new SqlParameter("@NAME", user.Name),
new SqlParameter("@USERNAME", user.UserName),
new SqlParameter("@PASSWORD", user.Password),
new SqlParameter("@SCORE", user.HightScore),
};
15 for (int i = ; i < ; i++)
{
cmd.Parameters.Add(param[i]);
}
cmd.ExecuteNonQuery(); // 關閉數據庫語句在這寫
3. DELECT操作
string userName = Console.ReadLine(); // 連接數據庫操作寫在這 var delete = "DELETE FROM _Users WHERE UserName = '"+userName+"'"; // 開啟數據庫操作寫在這 var cmd = new SqlCommand(delete, conn);
int res = cmd.ExecuteNonQuery();
if (res == )
Console.Write("刪除失敗.");
else
Console.Write("刪除成功"); // 關閉數據庫操作寫在這
4. UPDATE操作
string userName = Console.ReadLine();
string password = Console.ReadLine();
// 連接數據庫寫在這 var update = "UPDATE _Users SET Password = '"+new_password+"' WHERE UserName = '"+userName+"' "; // 開啟數據庫操作寫在這 var cmd = new SqlCommand(update, conn);
var res = cmd.ExecuteNonQuery();
if (res == )
Console.WriteLine("修改失敗.");
else
Console.WriteLine("修改成功."); // 關閉數據庫操作寫在這
三、在數據庫語句中傳遞參數的兩個方法
1.直接寫入法
參考第二節第3小節“DELETE操作”代碼。
2.給命令對象添加參數法
參考第二節第3小節“INSERT操作”代碼。
C#數據庫的更多相关文章
- python連接mysql數據庫
第一步,安裝mysql數據庫. 這裏我安裝的是mariadb數據庫,版本5.5,並且配置好了字符集.此處不詳細敘述,相信大家沒有問題. 第二步,安裝mysql驅動. 首先說明一下有兩個主要的驅動: m ...
- PB C/S轉B/S ODBC方式連接數據庫
PB C/S轉B/S ODBC方式連接數據庫,DSN需要建為系統而不是使用者DSN,否則連不上數據庫.
- 一次 C# 查詢數據庫 算法優化的案例
最近有次在修改某段程式時,發現一段程式算法看起來簡單. 但背後因為多次查詢數據庫,導致效能問題. 這段程式主要是利用 EPPLUS 讀取 Excel 資料,檢查資料是否已存在數據庫中,若有就將已存在的 ...
- 使用DataSet與DataAdapter對數據庫進行操作
1.定義連接字符串 var source = "server=(local); integrated security=SSPI; database=test"; var conn ...
- 在Android中afinal框架下實現sqlite數據庫版本升級的辦法
public abstract void onUpgrade(SQLiteDatabase db,int oldVersion,int new Version) 這個方法在實現時需要重寫. pub ...
- 數據庫ORACLE轉MYSQL存儲過程遇到的坑~(總結)
ORACLE數據庫轉MySQL數據庫遇到的坑 總結 最近在做Oracle轉mysql的工程,遇到的坑是真的多,尤其是存儲過程,以前都沒接觸過類似的知識,最近也差不多轉完了就總結一下.希望能幫到一些人( ...
- MVC+Ninject+三层架构+代码生成 -- 总结(一、數據庫)
一.數據表 是參照 別人的庫建表的 ,主鍵都是用int 自增,若是跨數據庫的話,建議使用GUID為主鍵.
- Scrapy——將數據保存到MySQL數據庫
Scrapy--將數據保存到MySQL數據庫 1. 在MySQL中創建數據庫表job_inf: 1 Create table job_inf( 2 id int(11) not null auto_i ...
- C#在sql中使用變量訪問Oracle數據庫
1.首先創建一個測試數據表 CREATE TABLE people ( SNO BYTE), SNAME BYTE), SSEX BYTE), SAGE number, SDEPT BYTE), BT ...
随机推荐
- java DTO对象与PO对象的相互转换
2018-09-27 10:27:50 前言: 在实际开发中往往需要DTO对象与PO对象的相互转换: 先说说什么是DTO对象吧,个人觉得DTO就是PO的扩展而已,PO专门指向数据库,DTO作扩展(字段 ...
- python 面试题知识回顾
1. python 函数 的参数传递 a = 1 def fun(a): a = 2 fun(a) print a # 1 a = [] def fun(a): a.append(1) fun(a) ...
- 搭积木(java)-蓝桥杯
搭积木小明最近喜欢搭数字积木,一共有10块积木,每个积木上有一个数字,0~9.搭积木规则:每个积木放到其它两个积木的上面,并且一定比下面的两个积木数字小.最后搭成4层的金字塔形,必须用完所有的积木.下 ...
- 手动安装OpenCV下的IPP加速库
写在前面 安装opencv的时候,往往会卡在这里: IPPICV: Download: ippicv_2019_lnx_intel64_general_20180723.tgz 其实就是墙的原因,然后 ...
- touchweb网站常见问题,手机网站注意问题
一.h5网站input 设置为type=number的问题 h5网页input 的type设置为number一般会产生三个问题,一个问题是maxlength属性不好用了.另外一个是form提交的时候, ...
- qq跳转
给<a href="http://wpa.qq.com/msgrd?v=3&uin=1061214467&site=qq&menu=yes">& ...
- [Swift]LeetCode206. 反转链表 | Reverse Linked List
Reverse a singly linked list. Example: Input: 1->2->3->4->5->NULL Output: 5->4-> ...
- [Swift]LeetCode437. 路径总和 III | Path Sum III
You are given a binary tree in which each node contains an integer value. Find the number of paths t ...
- [Swift]LeetCode799. 香槟塔 | Champagne Tower
We stack glasses in a pyramid, where the first row has 1 glass, the second row has 2 glasses, and so ...
- mac openresty 源码安装 坑
下载openresty源码安装 下载页面http://openresty.org/cn/download.html 下载上一个版本的稳定版 https://openresty.org/download ...