2012-05-30 88 views
1

我正在用c#webapp使用VS 2008製作一個ASP.net,並且我在項目中添加了一個新的sql數據庫項目。我給表格添加了數據庫。在數據庫瀏覽器中,測試連接起作用。我想我有兩個問題。一:在應用程序中,如何使用連接字符串連接到數據庫?或者我應該使用什麼連接字符串?第二:如何向數據庫添加用戶名和密碼?asp.net c#連接到本地db vs2008

現在我在web.config文件中使用此連接字符串,但是當我運行該應用程序時,它超時並且說它無法建立連接。錯誤在conn.open行。

add name="ReportsConnectionString" connectionString="Data Source=(local); Initial  Catalog=REPORTS;Integrated Security=True" providerName="System.Data.SqlClient" 

我在我的頁面的代碼隱藏其中之一有此代碼。

string sqlquery = "SELECT * FROM reportitems"; 
using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ReportsConnectionString"].ConnectionString)) 
    { 
     conn.Open(); 
     using (SqlCommand comm = new SqlCommand(sqlquery, conn)) 
     { 
      using (SqlDataAdapter adapter = new SqlDataAdapter(comm)) 
      { 
       DataSet ds = new DataSet(); 
       adapter.Fill(ds, "reportitems"); 
       DataRowCollection dra = ds.Tables["reportitems"].Rows; 

       foreach (DataRow dr in dra) 
       { 
        string DRZ = dr[0].ToString(); 
        //more stuff here 
       } 
      } 
     } 
    } 
+1

將'Data Source =(local)'更改爲'Data Sourcee = Localhost \ SQLEXPRESS'並查看會發生什麼 – Shyju

+0

好的,停止了超時。現在它說無法打開登錄請求的數據庫「報告」。登錄失敗。 –

+0

發佈確切的錯誤訊息,我們可能會提供幫助。 – bnieland

回答

3

通常可以在本地PC上使用此數據源參數yourpcname\SQLEXPRESS的語法訪問SqlServer Express。確保啓動Management Studio並查看服務器名稱請求。

對於您的問題的安全部分,我想你不想要集成安全選項(Windows用戶),但你想要一個SQLServer用戶。在這種情況下,你可以使用User IDPassword參數連接字符串:

Data Source=MYPC\SQLEXPRESS;Initial Catalog=REPORTS;User Id=MYNAME;Password=MYPASS; 

然而,這一工程已將此用戶添加到SQLServer的之後。 你可以使用Management Studio應用程序的界面,或者你可以執行這樣

USE [master] 
GO 
CREATE LOGIN [MYNAME] WITH PASSWORD=N'MYPASS', DEFAULT_DATABASE=[master] 
GO 
USE [REPORTS] 
GO 
CREATE USER [MYNAME] FOR LOGIN [MYNAME] 
GO 
+0

如果我將來把這個放在服務器上,我認爲MYPC部分將是服務器的名稱? –

+0

是的,現在就養成這樣的習慣,這樣你將來不會忘記:-) – Steve

1

ConnectionString中的Integrated Security=True部分意味着服務器將使用運行該網站的應用程序池的憑據,則不需要指定用戶名或密碼。但是,應用程序池標識將需要訪問數據庫。

1

正如其他人所說,你需要一個SqlExpress引擎運行.mdf不是一個平面文件。它是一個SQL Server Express數據庫文件,您需要連接到它。

但是沒有說的是,你的App_Data文件夾中的數據庫需要連接到SqlServer實例。這一步只在第一次連接中完成一次。

http://www.connectionstrings.com/sql-server-2008您將在「附加數據庫文件,位於數據目錄,在連接到本地SQL Server Express實例」部分,看起來像這樣在找到一個例子:

Server=.\SQLExpress;AttachDbFilename=|DataDirectory|mydbfile.mdf; Database=dbname;Trusted_Connection=Yes; 

你也可以閱讀:http://msdn.microsoft.com/en-us/library/ms247257.aspx

我相信你需要運行一些腳本和類似的東西來創建一個用戶,並在這個數據庫中爲這個用戶分配權限,然後改變連接字符串(一旦數據庫連接),所以我沒有看到App_Data文件夾中有數據庫的一點。我相信,如果從一開始就使用SqlServer工具創建數據庫並從應用程序連接到數據庫,它應該會更好。