一、連接數據庫

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#數據庫的更多相关文章

  1. python連接mysql數據庫

    第一步,安裝mysql數據庫. 這裏我安裝的是mariadb數據庫,版本5.5,並且配置好了字符集.此處不詳細敘述,相信大家沒有問題. 第二步,安裝mysql驅動. 首先說明一下有兩個主要的驅動: m ...

  2. PB C/S轉B/S ODBC方式連接數據庫

    PB C/S轉B/S ODBC方式連接數據庫,DSN需要建為系統而不是使用者DSN,否則連不上數據庫.

  3. 一次 C# 查詢數據庫 算法優化的案例

    最近有次在修改某段程式時,發現一段程式算法看起來簡單. 但背後因為多次查詢數據庫,導致效能問題. 這段程式主要是利用 EPPLUS 讀取 Excel 資料,檢查資料是否已存在數據庫中,若有就將已存在的 ...

  4. 使用DataSet與DataAdapter對數據庫進行操作

    1.定義連接字符串 var source = "server=(local); integrated security=SSPI; database=test"; var conn ...

  5. 在Android中afinal框架下實現sqlite數據庫版本升級的辦法

    public abstract void onUpgrade(SQLiteDatabase db,int oldVersion,int new Version) 這個方法在實現時需要重寫.   pub ...

  6. 數據庫ORACLE轉MYSQL存儲過程遇到的坑~(總結)

    ORACLE數據庫轉MySQL數據庫遇到的坑 總結 最近在做Oracle轉mysql的工程,遇到的坑是真的多,尤其是存儲過程,以前都沒接觸過類似的知識,最近也差不多轉完了就總結一下.希望能幫到一些人( ...

  7. MVC+Ninject+三层架构+代码生成 -- 总结(一、數據庫)

    一.數據表 是參照 別人的庫建表的 ,主鍵都是用int 自增,若是跨數據庫的話,建議使用GUID為主鍵.

  8. Scrapy——將數據保存到MySQL數據庫

    Scrapy--將數據保存到MySQL數據庫 1. 在MySQL中創建數據庫表job_inf: 1 Create table job_inf( 2 id int(11) not null auto_i ...

  9. C#在sql中使用變量訪問Oracle數據庫

    1.首先創建一個測試數據表 CREATE TABLE people ( SNO BYTE), SNAME BYTE), SSEX BYTE), SAGE number, SDEPT BYTE), BT ...

随机推荐

  1. Jmeter中连接Oracle报错Cannot create PoolableConnectionFactory

    填坑贴,之前一直用jmeter2.13版本进行oracle测试,今天改为3.2版本,发现按照以往的方法执行测试,JDBC Request结果始终报错:Cannot create PoolableCon ...

  2. Python爬虫(2):urllib库

    爬虫常用库urllib 注:运行环境为PyCharm urllib是Python3内置的HTTP请求库 urllib.request:请求模块 urllib.error:异常处理模块 urllib.p ...

  3. Hadoop 集群安装(从节点安装配置)

    1.Java环境配置 view plain copy sudo mv /tmp/java /opt/ jdk安装完配置环境变量,编辑/etc/profile: view plain copy sudo ...

  4. Android 实现卡片翻转的动画(翻牌动画)

    Android 实现卡片翻转的动画(翻牌动画) 需求描述 点击卡片,卡片翻转过来显示内容. 点击左边的卡片,将卡片翻转显示右边的图片结果. 功能实现 因为要翻转所以使用动画来完成翻转的动画.动画分为两 ...

  5. SUSE12Sp3-.NET Core 2.2.1 runtime安装

    1.安装libicu依赖 1.在线安装 sudo mkdir /usr/local/dotnet #创建目录 cd /usr/local/dotnet sudo wget https://downlo ...

  6. [Java]LeetCode284. 顶端迭代器 | Peeking Iterator

    Given an Iterator class interface with methods: next() and hasNext(), design and implement a Peeking ...

  7. [Swift]LeetCode540. 有序数组中的单一元素 | Single Element in a Sorted Array

    Given a sorted array consisting of only integers where every element appears twice except for one el ...

  8. 基于Spring Boot、Spring Cloud、Docker的微服务系统架构实践

    由于最近公司业务需要,需要搭建基于Spring Cloud的微服务系统.遍访各大搜索引擎,发现国内资料少之又少,也难怪,国内Dubbo正统治着天下.但是,一个技术总有它的瓶颈,Dubbo也有它捉襟见肘 ...

  9. Spring Boot 最核心的 25 个注解,都是干货!

    学习和应用 Spring Boot 有一些时间了,你们对 Spring Boot 注解了解有多少呢?今天栈长我给大家整理了 Spring Boot 最核心的 25 个注解,都是干货! 你所需具备的基础 ...

  10. 浅谈Java内存模型

    Java内存模型虽说是一个老生常谈的问题 ,也是大厂面试中绕不过的,甚至初级面试也会问到.但是真正要理解起来,还是相当困难,主要这个东西看不见,摸不着.网上已经有大量的博客,但是人家的终究是人家的,自 ...