步驟/方法

網(wǎng)站的建設(shè)成都創(chuàng)新互聯(lián)公司專注網(wǎng)站定制,經(jīng)驗(yàn)豐富,不做模板,主營(yíng)網(wǎng)站定制開(kāi)發(fā).小程序定制開(kāi)發(fā),H5頁(yè)面制作!給你煥然一新的設(shè)計(jì)體驗(yàn)!已為會(huì)所設(shè)計(jì)等企業(yè)提供專業(yè)服務(wù)。
1
在我們c#與sql鏈接的過(guò)程中,一般會(huì)有兩種方法,而每種方法均賦予了不同的權(quán)限;如下:
1、集成的Windows身份驗(yàn)證語(yǔ)法范例:
String connectionString = "server=localhost;database=Northwind;integrated security=SSPI";
代碼說(shuō)明:其中server表示運(yùn)行Sql Server的計(jì)算機(jī)名,由于在本書(shū)中,ASP.NET程序和數(shù)據(jù)庫(kù)系統(tǒng)是位于同一臺(tái)計(jì)算機(jī)的,所以我們可以用localhost取代當(dāng)前的計(jì)算機(jī)名,當(dāng)然localhost也可以用“.”來(lái)代替。database表示所使用的數(shù)據(jù)庫(kù)名,這里設(shè)置為Sql Server自帶的一個(gè)示例數(shù)據(jù)庫(kù)--Northwind。由于我們希望采用集成的Windows驗(yàn)證方式,所以設(shè)置 integrated security為SSPI即可。
注意:在使用集成的Windows驗(yàn)證方式時(shí),并不需要我們輸入用戶名和口令,而是把登錄Windows時(shí)輸入的用戶名和口令傳遞到Sql Server。然后Sql Server檢查用戶清單,檢查其是否具有訪問(wèn)數(shù)據(jù)庫(kù)的權(quán)限。而且數(shù)據(jù)庫(kù)連接字符串是不區(qū)分大小寫(xiě)的。
2
2、采用Sql Server身份驗(yàn)證的語(yǔ)法范例:
string connectionString = "server=localhost;database=Northwind;uid=sa;pwd=sa";
代碼說(shuō)明:在上述語(yǔ)法范例的程序代碼中,采用了使用已知的用戶名和密碼驗(yàn)證進(jìn)行數(shù)據(jù)庫(kù)的登錄。localhost可以用“.”來(lái)代替,uid為指定的數(shù)據(jù)庫(kù)用戶名,pwd為指定的用戶口令。為了安全起見(jiàn),一般不要在代碼中包括用戶名和口令,你可以采用前面的集成的Windows驗(yàn)證方式或者對(duì)Web.Config文件中的連接字符串加密的方式提高程序的安全性。
END
注意事項(xiàng)
在我們運(yùn)用以上兩種方法中的任何一種的時(shí)候,我們一定要注意以下幾點(diǎn):
1、細(xì)心:我們?cè)诰帉?xiě)鏈接字符串的時(shí)候,一定要認(rèn)真加仔細(xì),因?yàn)閏#是區(qū)分字母的大小寫(xiě)的,同時(shí)在某種情況下,還對(duì)空格敏感;在筆者還是菜鳥(niǎo)的時(shí)候,就因?yàn)橐粋€(gè)空格的問(wèn)題,使本人糾纏了2天而郁悶萬(wàn)分,最后一查,竟然是一個(gè)空格惹的禍;
2、權(quán)限:這里,就是要大家注意的是,我們鏈接數(shù)據(jù)庫(kù)的權(quán)限一定要獲取正確,如果權(quán)限不正確,那再認(rèn)真和仔細(xì),也是枉然;
3、網(wǎng)速:在我們開(kāi)發(fā)的c#程序中,也偶爾會(huì)出現(xiàn)因?yàn)榫W(wǎng)速巨慢引起的sql鏈接故障的問(wèn)題,那么我們?cè)跈z查以上2種都無(wú)誤的情況下,去測(cè)試一下你的網(wǎng)速是否出現(xiàn)異常,由此來(lái)判斷一下你的數(shù)據(jù)庫(kù)鏈接是否真正有誤;這,是否是c#中的一個(gè)小bug呢?歡迎大家討論!
其實(shí)啊,這本來(lái)是一個(gè)很easy的問(wèn)題,就像我的引言中所說(shuō)那樣,不是很復(fù)雜,只要我們方法正確,足夠仔細(xì),就不會(huì)出現(xiàn)什么問(wèn)題;
select?id,?ISNULL(cast(Score?as?varchar),'空白')?from?T
select?id,?ISNULL(Score,'')?from?T
你看你到底是哪個(gè)意思
NORTHWND.MDF不就是SQL server數(shù)據(jù)的文件嗎,還原文件(也就是你新建數(shù)據(jù)庫(kù),選擇NORTHWND.MDF這個(gè)文件),即可生成你要的數(shù)據(jù)庫(kù)。這是由數(shù)據(jù)庫(kù)文件生成數(shù)據(jù)庫(kù),并不是你說(shuō)的sql語(yǔ)句來(lái)生成數(shù)據(jù)庫(kù)。
并且網(wǎng)上有很多關(guān)于這方面的知識(shí),你可以學(xué)習(xí)下。
連接數(shù)據(jù)庫(kù)
public class DBManager {
//定義數(shù)據(jù)庫(kù)連接的URL
private static final String URL="jdbc:sqlserver://localhost:1433;database=j1105";
//定義數(shù)據(jù)庫(kù)的用戶名
private static final String USERNAME = "sa";
//定義數(shù)據(jù)庫(kù)密碼
private static final String PASSWORD = "sa";
//定義一個(gè)連接的引用,使用單例模式
private static Connection conn = null;
//使用靜態(tài)塊來(lái)注冊(cè)驅(qū)動(dòng)
//類加載時(shí)自動(dòng)執(zhí)行代碼塊
static {
//反射com.microsoft.sqlserver.jdbc.SQLServerDriver.class
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
//獲得連接
//在程序使用過(guò)程中始終只有1個(gè)對(duì)象存在
//使用單例模式來(lái)給Connection賦值
public static Connection getConnection(){
if(conn == null){
try {
conn = DriverManager.getConnection(URL, USERNAME, PASSWORD);
} catch (SQLException e) {
e.printStackTrace();
}
}
return conn;
}
/**
* 關(guān)閉的一些操作 , 優(yōu)化
* @param conn
* @param stat
* @param rs
*/
public static void close(Connection conn,Statement stat,ResultSet rs){
try{
if(conn != null){
conn.close();
}
if(stat != null){
stat.close();
}
if(rs != null){
rs.close();
}
}catch(SQLException e){
e.printStackTrace();
}
}
/**
* 重寫(xiě)上面的方法,在只有2個(gè)參數(shù)的情況下關(guān)閉
* @param conn
* @param stat
*/
public static void close(Connection conn,Statement stat){
try{
if(conn != null){
conn.close();
}
if(stat != null){
stat.close();
}
}catch(SQLException e){
e.printStackTrace();
}
}
public static void main(String[] args){
Connection conn = DBManager .getConnection();
System.out.println(conn);
}
}
接口
public interface IStudentDao {
public void deleteStudent(int xh);
}
實(shí)現(xiàn)
public class StudentDAOimpl implements IStudentDao {
public void deleteStudent(int xh) {
try{
String sql = "delete from tb_student where xh = ?";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setInt(1, xh);
ps.executeUpdate();
System.out.println("成功刪除");
}catch(SQLException e){
e.printStackTrace();
}
}
}
C#連接 SQL server數(shù)據(jù)庫(kù) 數(shù)據(jù)庫(kù)是Windows驗(yàn)證方式登錄的
采用集成的Windows驗(yàn)證和使用Sql Server身份驗(yàn)證進(jìn)行數(shù)據(jù)庫(kù)的登錄
1、集成的Windows身份驗(yàn)證語(yǔ)法范例
1
string constr = "server=.;database=myschool;integrated security=SSPI";
說(shuō)明:程序代碼中,設(shè)置了一個(gè)針對(duì)Sql Server數(shù)據(jù)庫(kù)的連接字符串。其中server表示運(yùn)行Sql Server的計(jì)算機(jī)名,由于程序和數(shù)據(jù)庫(kù)系統(tǒng)是位于同一臺(tái)計(jì)算機(jī)的,所以我們可以用.(或localhost)取代當(dāng)前的計(jì)算機(jī)名。
database表示所使用的數(shù)據(jù)庫(kù)名(myschool)。由于我們希望采用集成的Windows驗(yàn)證方式,所以設(shè)置 integrated security為SSPI即可。
northwind和pubs是示例數(shù)據(jù)庫(kù),我們可以利用它們做演示。
因?yàn)槠渌鼛讉€(gè)是系統(tǒng)數(shù)據(jù)庫(kù),不可以隨便更改,聯(lián)機(jī)幫助上的例子基本上都以northwind和pubs這兩個(gè)數(shù)據(jù)來(lái)舉例。
網(wǎng)頁(yè)題目:sqlserver范例,sqlserver實(shí)例概念
本文鏈接:http://chinadenli.net/article27/dsgjpcj.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、電子商務(wù)、做網(wǎng)站、網(wǎng)站策劃、品牌網(wǎng)站建設(shè)、營(yíng)銷型網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)