sql中connect
usingSystem;
usingSystem.Text;
usingSystem.Data;
usingSystem.Data.SqlClient;
namespaceConsoleApplication7
{
classProgram
{
staticvoidMain(string[]args)
{
//設置連接字元串
conststringSTR="Server=.;DataBase=MySchool;Uid=sa;Pwd=ok";
//創建資料庫連接對象
SqlConnectioncon=newSqlConnection(STR);
//設置需要執行的SQL語句
StringBuildersql=newStringBuilder();
sql.Append("SELECT*FROM[Student]");
//創建執行者
SqlCommandcom=newSqlCommand(sql.ToString(),con);
//執行SQL語句自己寫
//關閉對象
con.Close();
}
}
}
❷ 在SQL中Connection,Session,和Request三個概念的區別
1.連接(connection)是一個物理的概念,它指的是一個通過網路建立的客戶端和專有伺服器(Dedicated Server)或調度器(Shared Server)的一個網路連接。
2.會話(session)是一個邏輯的概念,它是存在於實例中。
一個連接可以擁有多個會話也可以沒有會話,同一個連接上的不同會話之間不會相互影響。
❸ SqlConnection conn = new SqlConnection(con);這句是什麼意思
SqlConnection
conn
=
new
SqlConnection(con);這句是什麼意思呢。
答:
創建一個資料庫連接,不連接就不能使用資料庫
con的定義是這樣的
string
con
=
ConfigurationManager.ConnectionStrings["newsConnectionString1"].ConnectionString;
問題補充 2010-03-31
16:32
資料庫連接字元串;是什麼意思??
答:網上有成千上萬個資料庫,你的程序怎麼知道你要連哪個?你要通過連接字元串,告訴你的程序就連接某個某個資料庫,連接字元串中的內容是資料庫的地址、名稱、用戶名和登錄密碼。
這句
string
con
=
ConfigurationManager.ConnectionStrings["newsConnectionString1"].ConnectionString
到底從newsConnectionString1里獲取了哪些數據??
答:
資料庫的地址、名稱、用戶名和登錄密碼。
❹ sqlconnection連接方法
Sql server2000
(1)本地連接
// 下面是本地連接sql2000,採用下面兩種連接字元串
string source = @" server = .kingsql;database = Northwind ; integrated security=SSPI ";
string source = @" server = .kingsql;database = Northwind ; uid = sa; pwd = sa ";
(2)遠程連接
首先要保證客戶端與SQL伺服器連接。
具體如下說明:
1)ping 伺服器ip測試連通與否
這個實際上是看和遠程sql server 2000伺服器的物理連接是否存在。如果不行,請檢查網路,查 看配置,當然得確保遠程sql server 2000伺服器的IP拼寫正確。
2) 在Dos或命令行下輸入telnet 伺服器IP 埠,看能否連通
如: telnet 202.114.100.100 1433
通常埠值是1433,因為1433是sql server 2000的對於Tcp/IP的默認偵聽埠。如果有問題,通常這一步會出問題。通常的提示是「……無法打開連接,連接 失敗"。
如果這一步有問題,應該檢查以下選項。
1 檢查遠程伺服器是否啟動了sql server 2000服務。如果沒有,則啟動。
2 檢查伺服器端有沒啟用Tcp/IP協議,因為遠程連接(通過網際網路)需要靠這個協檢查方法是,在伺服器上打開開始菜單->程序-> Microsoft SQL Server->伺服器網路實用工具,看啟用的協議里是否有tcp/ip協議,如果沒有,則啟用它。
3 檢查伺服器的tcp/ip埠是否配置為1433埠。仍然在伺服器網路實用工具里查看啟用協議裡面的tcp/ip的屬性,確保默認埠為1433,並且隱藏伺服器復選框 沒有勾上。
事實上,如果默認埠被修改,也是可以的,但是在客戶端做telnet測試時,寫伺服器埠號時必須與伺服器配置的埠號保持一致。如果隱藏伺服器復選框被勾 選,則意味著客戶端無法通過枚舉伺服器來看到這台伺服器,起到了保護的作用,但不影響連接,但是Tcp/ip協議的默認埠將被隱式修改為2433,在客戶端連接 時必須作相應的改變。
4 如果伺服器端操作系統打過sp2補丁,則要對windows防火牆作一定的配置,要對它開放1433埠,通常在測試時可以直接關掉windows防火牆(其他的防火牆也 關掉最好)。
5 檢查伺服器是否在1433埠偵聽。如果伺服器沒有在tcp連接的1433埠偵聽,則是連接不上的。檢查方法是在伺服器的dos或命令行下面輸入netstat -a -n 或者是netstat -an,在結果列表裡看是否有類似tcp 127.0.0.1 1433 listening的項。如果沒有,則通常需要給sql server 2000打上至少sp3的補丁。其實在伺服器端啟動查詢分析器,輸入 select @@version 執行後可以看到版本號,版本號在8.0.2039以下的都需要打補丁。如果以上都沒問題,這時你再做telnet 伺服器ip 1433 測試,將會看到屏幕一 閃之後游標在左上角不停閃動。恭喜你,你馬上可以開始在企業管理器或查詢分析 器連接了。
一般寫法可以這樣子夠用了,對我們這些菜鳥來講就夠了,至於復雜的以後在寫,
SqlConnection conn = new SqlConnection("Server=.;DataBase=Northwind;Uid=sa;pwd=123;");
Server=.;目標伺服器IP本地用.(Local),
DataBase 資料庫名稱
Uid ,User ID , 連接資料庫的用戶名
pwd Password 是連接資料庫的密碼
//如果沒有就不要寫否則報錯
❺ sqlconnection myConnection=new SqlConnection(myConnectionString)是什麼意思
Sqlconnection就是建立到資料庫的連接類,在Asp.Net
2.0下使用比較多,也可以這樣寫:sqlconnection
myConnection=newSqlConnection();
myConnection.ConnectionString=myConnectionString;
在Asp.Net
4.0
下可以使用Linq
to
Sql
或者Entity
Framework來操作資料庫,不用手寫這些連接語句了。
❻ 資料庫連接問題,為什麼SQLConnect連接失敗
如果你是本地連接(指的是你的資料庫和應用程序在同一個機器上)的話,就要看你用的是
什麼驗證模式,如果是Windows身份驗證,那就檢查一下相關服務有沒有開啟或者是連接字元串語句有沒有正確。
如果是SQL Server 驗證模式,那就看你的埠號是否被防火牆屏蔽,還有就是你的sqlserver中是否添加用戶
❼ 如何正確使用SqlConnection
以前曾見過有人這樣寫代碼:
public class Service1 : IService1
{
private SqlConnection conn = new SqlConnection();
public void Method1()
{
//do something with conn;
}
public void Method2()
{
//do something with conn;
}
public void Method3()
{
//do something with conn;
}
public void Method4()
{
//do something with conn;
}
}
在服務類中,新建一個全局的conn對象,然後使用conn對象來操作資料庫。
當然,還有一些不同的版本,比如:
private SqlConnection conn = new SqlConnection();
private static SqlConnection sconn = new SqlConnection();
private SqlConnection Conn
{
get { return new SqlConnection(); }
}
如果有人問你哪種方式比較好,你會怎麼回答?
首先驗證下在多線程環境下使用一個Connection的方式:
創建控制台程序:
Main代碼如下:
public static void Main()
{
string connectionString = @"Data Source=.\SQLEXPRESS;
AttachDbFilename=""E:\DB\NORTHWND.mdf"";
Integrated Security=True;
Connect Timeout=30;User Instance=True";
string connectionStringNoPooling = connectionString + " ;Pooling='false' ";
SqlConnection conn = new SqlConnection(connectionString);
new Thread(() => { ExecuteCommand(conn); }) { Name = "t1" }.Start();
new Thread(() => { ExecuteCommand(conn); }) { Name = "t2" }.Start();
}
public static void ExecuteCommand(SqlConnection conn)
{
Console.WriteLine("Thread:{0},{1}", Thread.CurrentThread.Name, DateTime.Now);
conn.Open();
SqlCommand command = new SqlCommand("select * from customers", conn);
command.ExecuteNonQuery();
command.Dispose();
Thread.Sleep(5000); //模擬耗時的查詢
conn.Close();
Console.WriteLine("Thread:{0} 執行完畢,{1}", Thread.CurrentThread.Name, DateTime.Now);
}
代碼很簡單,模擬兩個線程同時執行ExecuteCommand.方法。結果如下:
可以知道在多線程環境下使用一個Connection來執行Sql語句是不安全的,
修改Main函數如下:將一個Connection,改為多個Connection
public static void Main()
{
string connectionString = @"Data Source=.\SQLEXPRESS;
AttachDbFilename=""E:\DB\NORTHWND.mdf"";
Integrated Security=True;
Connect Timeout=30;User Instance=True";
string connectionStringNoPooling = connectionString + " ;Pooling='false' ";
//SqlConnection conn = new SqlConnection(connectionString);
//new Thread(() => { ExecuteCommand(conn); }) { Name = "t1" }.Start();
//new Thread(() => { ExecuteCommand(conn); }) { Name = "t2" }.Start();
SqlConnection conn1 = new SqlConnection(connectionString);
SqlConnection conn2 = new SqlConnection(connectionString);
new Thread(() => { ExecuteCommand(conn1); }) { Name = "t1" }.Start();
new Thread(() => { ExecuteCommand(conn2); }) { Name = "t2" }.Start();
Console.ReadLine();
}
運行結果如下:
既然多個Connection比一個Connection要好,
為什麼還是有人使用上面的那種寫法來創建Connection呢?
我認為他們可能會認為創建多個Connection比較耗時,而且多個Connection會佔用內存,影響性能等等。。
❽ Sqlconnection 如何使用
不是你那麼用的,現在做項目開發底層操作資料庫的代碼公司都寫好了,在網上隨便下載一個項目,你照著學習一下,應該進步更快些,可以上51aspx網站看看。
<appSettings>
<add name="constr" connectionString="Server=.\sqlexpress;database=db.mdf;uid=sa;password=sa" />
</appSettings>
/// <summary>
/// 配置字元串類
/// </summary>
public static class Conn
{
public static readonly string SqlConn = System.Configuration.ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
}
public static int GetTable()
{
SqlConnection conn;
SqlCommand cmd;
try
{
conn = new SqlConnection(Conn.SqlConn);
cmd = new SqlCommand();
cmd.CommandText = "select * from tbabc";
cmd.Connection = conn;
cmd.CommandType = CommandType.Text;
return cmd.ExecuteNonQuery();
}
catch
{
return 0;
}
finally
{
conn.Dispose();
cmd.Dispose();
}
}
❾ SqlConnection就一定要關閉嗎
按照ms的說法,資料庫連接屬於非託管資源,在.net下使用後一定要close,這樣才能避免資源泄露。其實我並不這么認為 具體的實踐如下: 1、建立一個從ServicedComponent繼承的類 2、聲明使用對象池 3、在該類的構造函數中打開對資料庫的連接,並聲明不使用ado.net提供的連接池。應該在該函數中盡量把所有初始化工作做完,這樣可以更好地利用對象池 4、如果該類的方法不會被client頻繁調用,那麼應該聲明JITA 5、寫資料庫訪問相關方法,對資料庫操作後,不關閉SqlConnection 6、重寫CanBePooled方法,如果SqlConnection是open的狀態,那麼就聲明可以被pooled 7、寫client調用方法,對剛才寫好的類的資料庫訪問方法進行調用,調用後一定要dispose該類,以便通知對象池回收
❿ SqlConnection的實例怎麼用
我舉個例子你就明白了
SqlConnection Conn = new SqlConnection(連接字元串);
Conn.Open();//打開資料庫連接
......//執行操作
Conn.Close();//關閉資料庫連接