日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
EF中輕松刪除數(shù)據(jù)庫(kù)連接的方法(ef中刪除數(shù)據(jù)庫(kù)連接)

Entity Framework(EF)是微軟開(kāi)發(fā)的一種ORM框架,通過(guò)EF,我們能夠以面向?qū)ο蟮姆绞讲僮鲾?shù)據(jù)庫(kù),無(wú)需編寫SQL語(yǔ)句。EF已經(jīng)成為.NET中更受歡迎的ORM框架之一,它簡(jiǎn)化了數(shù)據(jù)訪問(wèn)和操作,提高了開(kāi)發(fā)效率。在EF中,連接數(shù)據(jù)庫(kù)是非常重要的,因?yàn)槲覀冃枰鶕?jù)數(shù)據(jù)存儲(chǔ)的需求和安全性要求設(shè)置連接方式。而在開(kāi)發(fā)和測(cè)試環(huán)境中,我們可能需要?jiǎng)h除一些連接。本文將介紹。

1.在配置文件中刪除數(shù)據(jù)庫(kù)連接字符串

EF使用配置文件(.config)存儲(chǔ)數(shù)據(jù)庫(kù)連接信息。要?jiǎng)h除連接,我們只需要找到這個(gè)文件中與數(shù)據(jù)庫(kù)連接相關(guān)的段落,并將整篇文檔中與它有關(guān)的行全部刪除即可。在Visual Studio中,找到EF項(xiàng)目的App.config或Web.config文件,并打開(kāi)它。

“`

providerName=”System.Data.SqlClient” />

“`

在上面的代碼段中,我們定義了一個(gè)名為“YourConnectionString”的連接字符串。要?jiǎng)h除它,只需將整行全部刪除即可。如果您的配置文件中有多個(gè)連接信息,您需要確保刪除的是正確的連接信息。

2.通過(guò)代碼刪除數(shù)據(jù)庫(kù)連接

如果您已經(jīng)在項(xiàng)目中寫了一些EF代碼并且已經(jīng)連接到了數(shù)據(jù)庫(kù)中的某個(gè)表,那么您需要在代碼中刪除連接。以下是一些常見(jiàn)的方法。

通過(guò)DbContext刪除連接:

“`csharp

using (var context = new YourDbContext())

{

context.Database.Connection.Close();

}

“`

通過(guò)SqlConnection刪除連接:

“`csharp

using (SqlConnection connection = new SqlConnection(connectionString))

{

connection.Open();

connection.Close();

}

“`

3.在Visual Studio Server Explorer中刪除數(shù)據(jù)庫(kù)連接

Visual Studio內(nèi)置了一個(gè)Server Explorer,可以讓我們方便地瀏覽并管理連接到的數(shù)據(jù)庫(kù)以及其他數(shù)據(jù)源。通過(guò)Server Explorer,可以輕松刪除連接。在Server Explorer中,右鍵單擊要?jiǎng)h除的連接,然后選擇“刪除”。

在項(xiàng)目開(kāi)發(fā)和測(cè)試階段,我們可能需要?jiǎng)h除一些EF數(shù)據(jù)庫(kù)連接。在本文中,我們介紹了通過(guò)配置文件和代碼以及Visual Studio中的Server Explorer刪除連接的三種方法。使用這些方法,您可以更加靈活地管理EF項(xiàng)目中的數(shù)據(jù)庫(kù)連接,提高開(kāi)發(fā)效率和安全性。

成都網(wǎng)站建設(shè)公司-創(chuàng)新互聯(lián)為您提供網(wǎng)站建設(shè)、網(wǎng)站制作、網(wǎng)頁(yè)設(shè)計(jì)及定制高端網(wǎng)站建設(shè)服務(wù)!

關(guān)于存儲(chǔ)過(guò)程中連接數(shù)據(jù)庫(kù)問(wèn)題

存儲(chǔ)過(guò)程的概念

SQL Server提供了一種方法,它可以將一些固定的操作集中起來(lái)由SQL Server數(shù)據(jù)庫(kù)服務(wù)器來(lái)完成,以實(shí)現(xiàn)某個(gè)任務(wù),這種方法就是存儲(chǔ)過(guò)程。

存儲(chǔ)過(guò)程是SQL語(yǔ)句和可選控制流語(yǔ)句的預(yù)編譯,存儲(chǔ)在數(shù)據(jù)庫(kù)中,可由應(yīng)用程序通過(guò)一個(gè)調(diào)用執(zhí)行,而且允許用戶聲明變量、有條件執(zhí)行以及其他強(qiáng)大的編程功能。

在SQL Server中存儲(chǔ)過(guò)程分為兩類:即系統(tǒng)提供的存儲(chǔ)過(guò)程和用戶自定義的存儲(chǔ)過(guò)程。

可以出于任何使用SQL語(yǔ)句的目的來(lái)使用存儲(chǔ)過(guò)程,它具有以下優(yōu)點(diǎn):

可以在單個(gè)存儲(chǔ)過(guò)程中執(zhí)行一系列SQL語(yǔ)句。

可以從自己的存儲(chǔ)過(guò)程內(nèi)引用其他存儲(chǔ)過(guò)程,這可以簡(jiǎn)化一系列復(fù)雜語(yǔ)句。

存儲(chǔ)過(guò)程在創(chuàng)建時(shí)即在服務(wù)器上進(jìn)行編譯,所以執(zhí)行起來(lái)比單個(gè)SQL語(yǔ)句快,而且減少網(wǎng)絡(luò)通信的負(fù)擔(dān)。

安全性更高。

創(chuàng)建存儲(chǔ)過(guò)程

在SQL Server中,可以使用三種方法創(chuàng)建存儲(chǔ)過(guò)程 :

①使用創(chuàng)建存儲(chǔ)過(guò)程向?qū)?chuàng)建存儲(chǔ)過(guò)程。

②利用SQL Server 企業(yè)管理器創(chuàng)建存儲(chǔ)過(guò)程。

③使用Transact-SQL語(yǔ)句中的CREATE PROCEDURE命令創(chuàng)建存儲(chǔ)過(guò)程。

下面介紹使用Transact-SQL語(yǔ)句中的CREATE PROCEDURE命令創(chuàng)建存儲(chǔ)過(guò)程

創(chuàng)建存儲(chǔ)過(guò)程前,應(yīng)該考慮下列幾個(gè)事項(xiàng):

①不能將 CREATE PROCEDURE 語(yǔ)句與其它 SQL 語(yǔ)句組合到單個(gè)批處理中。

②存儲(chǔ)過(guò)程可以嵌套使用,嵌套的更大深度不能超過(guò)32層。

③創(chuàng)建存儲(chǔ)過(guò)程的權(quán)限默認(rèn)屬于數(shù)據(jù)庫(kù)所有者,該所有者可將此權(quán)限授予其他用戶。

④存儲(chǔ)過(guò)程是數(shù)據(jù)庫(kù)對(duì)象,其名稱必須遵守標(biāo)識(shí)符規(guī)則。

⑤只能在當(dāng)前數(shù)據(jù)庫(kù)中創(chuàng)建存儲(chǔ)過(guò)程。

⑥ 一個(gè)存儲(chǔ)過(guò)程的更大尺寸為128M。

使用CREATE PROCEDURE創(chuàng)建存儲(chǔ)過(guò)程的語(yǔ)法形式如下:

QUOTE:

CREATE PROCprocedure_name

>

WITH

{RECOMPILE|ENCRYPTION|RECOMPILE,ENCRYPTION}>

AS sql_statement

用CREATE PROCEDURE創(chuàng)建存儲(chǔ)過(guò)程的語(yǔ)法參數(shù)的意義如下:

procedure_name:用于指定要?jiǎng)?chuàng)建的存儲(chǔ)過(guò)程的名稱。

number:該參數(shù)是可選的整數(shù),它用來(lái)對(duì)同名的存儲(chǔ)過(guò)程分組,以便用一條 DROP PROCEDURE 語(yǔ)句即可將同組的過(guò)程一起除去。

@parameter:過(guò)程中的參數(shù)。在 CREATE PROCEDURE 語(yǔ)句中可以聲明一個(gè)或多個(gè)參數(shù)。

data_type:用于指定參數(shù)的數(shù)據(jù)類型。

VARYING:用于指定作為輸出OUTPUT參數(shù)支持的結(jié)果集。

Default:用于指定參數(shù)的默認(rèn)值。

OUTPUT:表明該參數(shù)是一個(gè)返回參數(shù)。

例如:下面創(chuàng)建一個(gè) 簡(jiǎn)單的存儲(chǔ)過(guò)程productinfo,用于檢索產(chǎn)品信息。

USE Northwind

if exists(select name from sysobjects

where name=’productinfo’ and type = ‘p’)

drop procedure productinfo

GO

create procedure productinfo

as

select * from products

GO

通過(guò)下述sql語(yǔ)句執(zhí)行該存儲(chǔ)過(guò)程:execute productinfo

即可檢索到產(chǎn)品信息。

執(zhí)行存儲(chǔ)過(guò)程

直接執(zhí)行存儲(chǔ)過(guò)程可以使用EXECUTE命令來(lái)執(zhí)行,其語(yǔ)法形式如下:

>

{

{procedure_name|@procedure_name_var}{value|@variable|}

使用 EXECUTE 命令傳遞單個(gè)參數(shù),它執(zhí)行 showind 存儲(chǔ)過(guò)程,以 titles 為參數(shù)值。showind 存儲(chǔ)過(guò)程需要參數(shù) (@tabname),它是一個(gè)表的名稱。其程序清單如下:

EXEC showind titles

當(dāng)然,在執(zhí)行過(guò)程中變量可以顯式命名:

EXEC showind @tabname = titles

如果這是 isql 腳本或批處理中之一個(gè)語(yǔ)句,則 EXEC 語(yǔ)句可以省略:

showind titles或者showind @tabname = titles

下面的例子使用了默認(rèn)參數(shù)

USE Northwind

GO

CREATE PROCEDURE insert_Products_1

( @SupplierID_int,

@CategoryID_int,

@ProductName_1 nvarchar(40)=’無(wú)’)

AS INSERT INTO Products

(ProductName,SupplierID,CategoryID)

VALUES

(@ProductName_1,@SupplierID_2,@CategoryID_3)

GO

exec insert_Products_1 1,1

Select * from Products where SupplierID=1 and CategoryID=1

GO

下面的例子使用了返回參數(shù)

USE Northwind

GO

CREATE PROCEDURE query_products

( @SupplierID_1 int,

@ProductName_2 nvarchar(40) output)

AS

select @ProductName_2 = ProductName from products

where SupplierID = @SupplierID_1

執(zhí)行該存儲(chǔ)過(guò)程來(lái)查詢SupplierID為1的產(chǎn)品名:

declare @product nvarchar(40)

exec query_products 1,@product output

select ‘產(chǎn)品名’= @product

go

查看存儲(chǔ)過(guò)程

存儲(chǔ)過(guò)程被創(chuàng)建之后,它的名字就存儲(chǔ)在系統(tǒng)表sysobjects中,它的源代碼存放在系統(tǒng)表syscomments中??梢允褂檬褂闷髽I(yè)管理器或系統(tǒng)存儲(chǔ)過(guò)程來(lái)查看用戶創(chuàng)建的存儲(chǔ)過(guò)程。

使用企業(yè)管理器查看用戶創(chuàng)建的存儲(chǔ)過(guò)程

在企業(yè)管理器中,打開(kāi)指定的服務(wù)器和數(shù)據(jù)庫(kù)項(xiàng),選擇要?jiǎng)?chuàng)建存儲(chǔ)過(guò)程的數(shù)據(jù)庫(kù),單擊存儲(chǔ)過(guò)程文件夾,此時(shí)在右邊的頁(yè)框中顯示該數(shù)據(jù)庫(kù)的所有存儲(chǔ)過(guò)程。用右鍵單擊要查看的存儲(chǔ)過(guò)程,從彈出的快捷菜單中選擇屬性選項(xiàng),此時(shí)便可以看到存儲(chǔ)過(guò)程的源代碼。

使用系統(tǒng)存儲(chǔ)過(guò)程來(lái)查看用戶創(chuàng)建的存儲(chǔ)過(guò)程

可供使用的系統(tǒng)存儲(chǔ)過(guò)程及其語(yǔ)法形式如下:

sp_help:用于顯示存儲(chǔ)過(guò)程的參數(shù)及其數(shù)據(jù)類型

sp_help name>

參數(shù)name為要查看的存儲(chǔ)過(guò)程的名稱。

sp_helptext:用于顯示存儲(chǔ)過(guò)程的源代碼

sp_helptext name>

參數(shù)name為要查看的存儲(chǔ)過(guò)程的名稱。

sp_depends:用于顯示和存儲(chǔ)過(guò)程相關(guān)的數(shù)據(jù)庫(kù)對(duì)象

sp_depends ’object’

參數(shù)object為要查看依賴關(guān)系的存儲(chǔ)過(guò)程的名稱。

sp_stored_procedures:用于返回當(dāng)前數(shù)據(jù)庫(kù)中的存儲(chǔ)過(guò)程列表

修改存儲(chǔ)過(guò)程

存儲(chǔ)過(guò)程可以根據(jù)用戶的要求或者基表定義的改變而改變。使用ALTER PROCEDURE語(yǔ)句可以更改先前通過(guò)執(zhí)行 CREATE PROCEDURE 語(yǔ)句創(chuàng)建的過(guò)程,但不會(huì)更改權(quán)限,也不影響相關(guān)的存儲(chǔ)過(guò)程或觸發(fā)器。其語(yǔ)法形式如下:

ALTERPROCprocedure_name

>

{RECOMPILE|ENCRYPTION|RECOMPILE,ENCRYPTION}>

AS

sql_statement

重命名和刪除存儲(chǔ)過(guò)程

1. 重命名存儲(chǔ)過(guò)程

修改存儲(chǔ)過(guò)程的名稱可以使用系統(tǒng)存儲(chǔ)過(guò)程sp_rename,其語(yǔ)法形式如下:

sp_rename 原存儲(chǔ)過(guò)程名稱,新存儲(chǔ)過(guò)程名稱

另外,通過(guò)企業(yè)管理器也可以修改存儲(chǔ)過(guò)程的名稱。

刪除存儲(chǔ)過(guò)程

刪除存儲(chǔ)過(guò)程可以使用DROP命令,DROP命令可以將一個(gè)或者多個(gè)存儲(chǔ)過(guò)程或者存儲(chǔ)過(guò)程組從當(dāng)前數(shù)據(jù)庫(kù)中刪除,其語(yǔ)法形式如下:

drop procedure {procedure}

當(dāng)然,利用企業(yè)管理器也可以很方便地刪除存儲(chǔ)過(guò)程。

存儲(chǔ)過(guò)程的重新編譯

在我們使用了一次存儲(chǔ)過(guò)程后,可能會(huì)因?yàn)槟承┰?,必須向表中新增加?shù)據(jù)列或者為表新添加索引,從而改變了數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu)。這時(shí),需要對(duì)存儲(chǔ)過(guò)程進(jìn)行重新編譯,SQL Server提供三種重新編譯存儲(chǔ)過(guò)程的方法 :

1、在建立存儲(chǔ)過(guò)程時(shí)設(shè)定重新編譯

語(yǔ)法格式:CREATE PROCEDURE procedure_name WITH RECOMPILE AS sql_statement

2、在執(zhí)行存儲(chǔ)過(guò)程時(shí)設(shè)定重編譯

語(yǔ)法格式: EXECUTE procedure_name WITH RECOMPILE

3、通過(guò)使用系統(tǒng)存儲(chǔ)過(guò)程設(shè)定重編譯

語(yǔ)法格式為: EXEC sp_recompile OBJECT

系統(tǒng)存儲(chǔ)過(guò)程與擴(kuò)展存儲(chǔ)過(guò)程

1.系統(tǒng)存儲(chǔ)過(guò)程

系統(tǒng)存儲(chǔ)過(guò)程存儲(chǔ)在master數(shù)據(jù)庫(kù)中,并以sp_為前綴,主要用來(lái)從系統(tǒng)表中獲取信息,為系統(tǒng)管理員管理SQL Server提供幫助,為用戶查看數(shù)據(jù)庫(kù)對(duì)象提供方便。比如用來(lái)查看數(shù)據(jù)庫(kù)對(duì)象信息的系統(tǒng)存儲(chǔ)過(guò)程sp_help、顯示存儲(chǔ)過(guò)程和其它對(duì)象的文本的存儲(chǔ)過(guò)程sp_helptext等。

2.擴(kuò)展存儲(chǔ)過(guò)程:

擴(kuò)展存儲(chǔ)過(guò)程以xp_為前綴,它是關(guān)系數(shù)據(jù)庫(kù)引擎的開(kāi)放式數(shù)據(jù)服務(wù)層的一部分,其可以使用戶在動(dòng)態(tài)鏈接庫(kù)(DLL)文件所包含的函數(shù)中實(shí)現(xiàn)邏輯,從而擴(kuò)展了Transact-SQL的功能,并且可以象調(diào)用Transact-SQL過(guò)程那樣從Transact-SQL語(yǔ)句調(diào)用這些函數(shù)。

例: 利用擴(kuò)展存儲(chǔ)過(guò)程xp_cmdshell為一個(gè)操作系統(tǒng)外殼執(zhí)行指定命令串,并作為文本返回任何輸出。

執(zhí)行代碼:

use master

exec xp_cmdshell ‘dir *.exe’

執(zhí)行結(jié)果返回系統(tǒng)目錄下的文件內(nèi)容文本信息。

最后給大家舉一個(gè)例子:

QUOTE:

/**

1、在Northwind數(shù)據(jù)庫(kù)中,創(chuàng)建一個(gè)帶查詢參數(shù)的存儲(chǔ)過(guò)程,

要求在輸入一個(gè)定購(gòu)金額總額@total時(shí),查詢超出該值的所

有產(chǎn)品的相關(guān)信息,包括產(chǎn)品名稱和供應(yīng)商名稱、單位數(shù)量、

單價(jià)、以及該產(chǎn)品的定購(gòu)金額總額,并通過(guò)一個(gè)輸出參數(shù)返回

滿足查詢條件的產(chǎn)品數(shù)

**/

IF exists (select * from SysObjects where name=’more_than_total’ and type=’p’)

drop procedure more_than_total

go

CREATE PROCEDURE More_Than_Total

@total money = 0

AS

Declare @amount allint

BEGIN

select distinct

P.productName,

S.contactName,

P.UnitPrice

from Products P inner join O

on p.productID=o.productID inner join suppliers s

on p.supplierID=s.SupplierID

where O.productID in

(select productID

from

group by productId

having sum(quantity*unitprice)>@total

)

END

GO

預(yù)先在 這個(gè)數(shù)據(jù)庫(kù)上面, 先建立好另外幾個(gè)數(shù)據(jù)庫(kù)的 數(shù)據(jù)庫(kù)鏈接 ( DBLINK )

SQL> CREATE DATABASE LINK mydblink

CONNECT TO test IDENTIFIED BY test123

USING ‘(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.210)(PORT = 1521)))

(CONNECT_DATA = (SERVICE_NAME = orcl)

)

)’;

Database link created.

SQL> select count(1) from user_tables@mydblink;

COUNT(1)

如何動(dòng)態(tài)更改EF的DBContext的連接字符串

為了實(shí)現(xiàn)程序在運(yùn)行時(shí)同時(shí)管理多個(gè)數(shù)據(jù)庫(kù),需要?jiǎng)討B(tài)修改連接字符串。方法如下:

1. 修改Settings.Designer.cs的連接字符串,把只讀屬性改為可讀寫。注意,在新添加配置數(shù)據(jù)時(shí),IDE會(huì)把你添加的內(nèi)容刪除。還需再次添加。

public string ConnectionString {get {

return ((string)(this));}//此為新添加的。set {

this = value;}}

ef中刪除數(shù)據(jù)庫(kù)連接的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于ef中刪除數(shù)據(jù)庫(kù)連接,EF中輕松刪除數(shù)據(jù)庫(kù)連接的方法,關(guān)于存儲(chǔ)過(guò)程中連接數(shù)據(jù)庫(kù)問(wèn)題,如何動(dòng)態(tài)更改EF的DBContext的連接字符串的信息別忘了在本站進(jìn)行查找喔。

香港云服務(wù)器機(jī)房,創(chuàng)新互聯(lián)(www.cdcxhl.com)專業(yè)云服務(wù)器廠商,回大陸優(yōu)化帶寬,安全/穩(wěn)定/低延遲.創(chuàng)新互聯(lián)助力企業(yè)出海業(yè)務(wù),提供一站式解決方案。香港服務(wù)器-免備案低延遲-雙向CN2+BGP極速互訪!


網(wǎng)站欄目:EF中輕松刪除數(shù)據(jù)庫(kù)連接的方法(ef中刪除數(shù)據(jù)庫(kù)連接)
轉(zhuǎn)載源于:http://www.dlmjj.cn/article/dhhgohg.html