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 ...
随机推荐
- 马昕璐 201771010118《面向对象程序设计(java)》第十五周学习总结
第一部分:理论知识学习部分 JAR文件:将.class文件压缩打包为.jar文件后,使用ZIP压缩格式,GUI界面程序就可以直接双击图标运行. 既可以包含类文件,也可以包含诸如图像和声音这些其它类型的 ...
- 菜鸡谈OO 第二单元总结
“欢迎来到(玄学)多线程的新世界” Homework1 单部傻瓜电梯调度 Part1 多线程设计策略 第一次学到了线程这个概念,与之前的编程体验大有不同.最大的区别在于从原本的线性发生程序变成了多个行 ...
- BUAA-OO-第二单元总结
OO第二单元总结 一.第五次作业 1.1 设计策略与架构 第五次作业要求的是完成设计支持一架傻瓜电梯的电梯系统.考虑到需要数据结构存放所有的请求,因此构建了FloorRequests类用来存放所有的请 ...
- Winsock编程基础2(UDP流程)
UDP用户数据报协议 服务器端 <1 创建套接字(socket) <2 绑定IP地址和端口(bind) <3 收发数据(sendto, recvfrom) <4 关闭连接(cl ...
- FTP出现PORT模式成功, 请更新你的站点配置文件
最近用FTP连接站点,经常出现连接不上或者连接失败,提示以PASV模式连接失败,正在使用PORT模式连接,最后才能连接成功,连接时间也是相当长,又慢又不稳定. 工具/原料 FlashFXP等F ...
- linux 下vim中关于删除某段,某行,或者全部删除的命令 ZZ
1,先打开某个文件: vim filename 2,转到文件结尾 在命令模式输入 G 3,转到10行 在命令模式输入 10G 4,删除所有内容:先用G 转到文件尾,然后使用下面命令: :1, .d 5 ...
- [Swift]LeetCode622. 设计循环队列 | Design Circular Queue
Design your implementation of the circular queue. The circular queue is a linear data structure in w ...
- Linux 工程向 Windows 平台迁移的一些小小 tips
Linux 工程向 Windows 平台迁移的一些小小 tips VS2013 C++11 Visual Studio 2013 没有做到对 C++11 所有的支持,其中存在的一个特性就是 In-cl ...
- Ubuntu12.04中的虚拟机安装Ubuntu16.04,并实现远程控制16.04
目录 1.设置网络连接 1.1 VMware虚拟机网络地址设置 1.2 设置虚拟机内Ubuntu16.04的网络模式 未开机状态下 开机状态下 1.3 查看虚拟机中Ubuntu16.04的IP 2.进 ...
- C# 多线程学习笔记 - 3
本文主要针对 GKarch 相关文章留作笔记,仅在原文基础上记录了自己的理解与摘抄部分片段. 遵循原作者的 CC 3.0 协议. 如果想要了解更加详细的文章信息内容,请访问下列地址进行学习. 原文章地 ...