服">
建立數(shù)據(jù)庫(kù)連接
1.建立數(shù)據(jù)庫(kù)連接:
using ;
using ..;
using .Linq;
using .Text;
using .Data.; //可以通過(guò)shift+alt+f10快捷鍵自動(dòng)導(dǎo)入。注意大小寫(xiě)
_1.建立數(shù)據(jù)庫(kù)連接
{
class
{
void Main([] args)
{
#
/*
//創(chuàng)建連接字符串//:應(yīng)該是—>服務(wù)器名\數(shù)據(jù)庫(kù)實(shí)例名。指定要連接哪個(gè)服務(wù)器的那個(gè)數(shù)據(jù)庫(kù)實(shí)例,如果連接默認(rèn)實(shí)例,則不需要指定實(shí)例名。
// :指定要連接服務(wù)器上的哪個(gè)數(shù)據(jù)庫(kù)。(直接寫(xiě)數(shù)據(jù)庫(kù)名即可)
//身份驗(yàn)證方式:
//身份驗(yàn)證方式: =True;
//SQL 身份驗(yàn)證方式: User Id=sa;=***;
= "Data =-PC; =;User ID=sa";
con = new ();
//操作數(shù)據(jù)庫(kù)。。。。。。。。。。。
if (con.State == .Data..)
{
con.Open(); //打開(kāi)連接
.("數(shù)據(jù)庫(kù)已經(jīng)連接!");
}
//執(zhí)行操作
if (con.State == .Data..Open)
{
con.Close(); //關(guān)閉連接
.("數(shù)據(jù)庫(kù)連接已關(guān)閉!");
}
//再次打開(kāi)連接
//判斷連接狀態(tài),如果是關(guān)閉狀態(tài),則打開(kāi)連接
//Ctrl+J:自動(dòng)產(chǎn)生提示。
if (con.State == .Data..)
{
con.Open();
.("連接再次打開(kāi)!");
}
if (con.State == .Data..Open)
{
con.Close();//關(guān)閉連接
.("數(shù)據(jù)庫(kù)連接已關(guān)閉!");
}
con.(); //釋放資源,不寫(xiě)con.close()也會(huì)關(guān)閉連接,()里面有close()方法,繼承和重寫(xiě)。
.()
*/
#
# 使用using創(chuàng)建
//為什么用using。Close:關(guān)閉以后還能打開(kāi)。:直接銷(xiāo)毀,不能再次使用。using在出了作用域以后調(diào)用c 創(chuàng)建數(shù)據(jù)庫(kù)連接,、 等的內(nèi)部都會(huì)做這樣的判斷:判斷有沒(méi)有close,如果沒(méi)有Close就先Close再。
//using會(huì)自動(dòng)關(guān)閉連接并且釋放資源c 創(chuàng)建數(shù)據(jù)庫(kù)連接,不用再寫(xiě)close()方法,但是為了提高性能,要遵守:“最晚打開(kāi),最早關(guān)閉”的原則。
= "Data =-pc; =;User Id=sa;=";
using ( = new