簡體   English   中英

asp.net c#連接到本地數據庫vs2008

[英]asp.net c# connect to local Db vs2008

我正在使用VS 2008用c#webapp創建一個ASP.net,並在項目中添加了一個新的sql數據庫項目。 我將表添加到數據庫。 在數據庫瀏覽器中,測試連接有效。 我想我有兩個問題。 一個:在應用程序中,如何使用連接字符串連接到數據庫? 還是應該使用什么連接字符串? 第二:如何向數據庫添加用戶名和密碼?

現在,我在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
                 }
            }
         }
     }

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

對於您問題的安全性部分,我想您不希望使用“集成安全性”選項(Windows用戶),但需要使用SQLServer用戶。 在這種情況下,可以對連接字符串使用“ User ID和“ Password參數:

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

連接Integrated Security=TrueIntegrated Security=True部分意味着服務器將使用運行該站點的應用程序池的憑據,而無需指定用戶名或密碼。 但是,應用程序池標識將需要訪問您的數據庫。

訪問http://www.connectionstrings.com/,以獲得有關設置各種應用程序的連接字符串的各種方法的入門。 這將向您顯示為什么(本地)不起作用,但是。\\ SQLEXPRESS起作用,以及如何向其中添加用戶名和密碼。 這是從http://www.connectionstrings.com/sql-server-2008提取的示例

數據源= myServerAddress;初始目錄= myDataBase;用戶ID = myUsername;密碼= myPassword;

正如其他人所說,您需要一個運行.mdf的非平面文件的SqlExpress引擎。 這是一個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/zh-cn/library/ms247257.aspx

我相信您將需要運行一些腳本和類似的東西來創建用戶並在此數據庫中為此用戶分配權限,然后更改連接字符串(一旦連接了數據庫),所以我看不到在App_Data文件夾中具有數據庫。 我相信如果從一開始就使用SqlServer工具創建數據庫並從應用程序連接到數據庫,那就更好了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM