asp.net c#连接到本地数据库vs2008

asp.net c#连接到本地数据库vs2008,c#,asp.net,database,connection-string,C#,Asp.net,Database,Connection String,我正在使用VS2008制作一个带有c#webapp的ASP.net,并在我的项目中添加了一个新的sql数据库项。我向数据库中添加了表。在数据库资源管理器中,测试连接起作用。我想我有两个问题。第一:在应用程序中,如何使用连接字符串连接到数据库?或者我应该使用什么连接字符串?第二:如何向数据库添加用户名和密码 现在我在web.config文件中使用这个连接字符串,但是当我运行应用程序时,它超时并说它无法建立连接。错误在conn.open线路上 add name="ReportsConnectionS

我正在使用VS2008制作一个带有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
                 }
            }
         }
     }

connectionstring的
integratedsecurity=True
部分意味着服务器将使用运行该站点的应用程序池的凭据,而您不需要指定用户名或密码。但是,应用程序池标识需要访问您的数据库。

连接字符串的
Integrated Security=True
部分意味着服务器将使用运行站点的应用程序池的凭据,而您无需指定用户名或密码。但是,应用程序池标识将需要访问您的数据库。

通常,您可以在本地PC上使用此语法访问数据源参数
yourpname\SQLEXPRESS
。确保启动ManagementStudio并查看服务器名称请求

对于问题的安全部分,我假设您不想要集成安全选项(Windows用户),而是想要SQLServer用户。在这种情况下,您可以使用连接字符串的
用户ID
密码
参数:

Data Source=MYPC\SQLEXPRESS;Initial Catalog=REPORTS;User Id=MYNAME;Password=MYPASS;
但是,只有将此用户添加到SQLServer后,此操作才有效。 您可以使用ManagementStudio应用程序的界面,也可以执行如下脚本

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

对于数据源参数
yourpname\SQLEXPRESS
,通常可以在本地PC上访问SqlServer Express。确保启动ManagementStudio并查看服务器名称请求

对于问题的安全部分,我假设您不想要集成安全选项(Windows用户),而是想要SQLServer用户。在这种情况下,您可以使用连接字符串的
用户ID
密码
参数:

Data Source=MYPC\SQLEXPRESS;Initial Catalog=REPORTS;User Id=MYNAME;Password=MYPASS;
但是,只有将此用户添加到SQLServer后,此操作才有效。 您可以使用ManagementStudio应用程序的界面,也可以执行如下脚本

USE [master]
GO
CREATE LOGIN [MYNAME] WITH PASSWORD=N'MYPASS', DEFAULT_DATABASE=[master]
GO
USE [REPORTS]
GO
CREATE USER [MYNAME] FOR LOGIN [MYNAME]
GO
请访问,以获取有关为各种应用设置连接字符串的各种方法的良好入门知识。这将向您展示为什么(本地)不起作用,但是。\SQLEXPRESS起作用,以及如何向其中添加用户名和密码。下面是一个从

数据源=myserver地址;初始目录=myDataBase;使用者 Id=我的用户名;密码=我的密码

请访问,以获取有关为各种应用设置连接字符串的各种方法的良好入门知识。这将向您展示为什么(本地)不起作用,但是。\SQLEXPRESS起作用,以及如何向其中添加用户名和密码。下面是一个从

数据源=myserver地址;初始目录=myDataBase;使用者 Id=我的用户名;密码=我的密码


正如其他人所说,您需要一个运行为的SqlExpress引擎。mdf不是平面文件。它是SQL server express数据库文件,您需要连接到它

但我们没有说的是,您的App_数据文件夹中的数据库需要连接到SqlServer实例。此步骤在第一次连接中仅执行一次

在中,您将在“连接到本地SQL Server Express实例时,将位于数据目录中的数据库文件附加到”部分中找到如下示例:

Server=.\SQLExpress;AttachDbFilename=|DataDirectory|mydbfile.mdf; Database=dbname;Trusted_Connection=Yes;
您还可以阅读以下内容:


我相信您需要运行一些脚本和类似的东西来创建一个用户,并在此数据库中为该用户分配权限,然后更改连接字符串(一旦数据库连接),因此我认为将数据库放在App_Data文件夹中没有任何意义。我认为最好从一开始就使用SqlServer工具创建数据库,并从应用程序连接到数据库。

正如其他人所说,您需要一个运行为的SqlExpress引擎。mdf不是平面文件。它是SQL server express数据库文件,您需要连接到它

但我们没有说的是,您的App_数据文件夹中的数据库需要连接到SqlServer实例。此步骤在第一次连接中仅执行一次

在中,您将在“连接到本地SQL Server Express实例时,将位于数据目录中的数据库文件附加到”部分中找到如下示例:

Server=.\SQLExpress;AttachDbFilename=|DataDirectory|mydbfile.mdf; Database=dbname;Trusted_Connection=Yes;
您还可以阅读以下内容:


我相信您需要运行一些脚本和类似的东西来创建一个用户,并在此数据库中为该用户分配权限,然后更改连接字符串(一旦数据库连接),因此我认为将数据库放在App_Data文件夹中没有任何意义。我认为最好从一开始就使用SqlServer工具创建数据库,并从应用程序连接到数据库。

数据源=(本地)
更改为
数据源e=Localhost\SQLEXPRESS
,然后查看发生了什么,从而停止了超时。现在它说无法打开登录请求的数据库“报告”。登录失败。请发布准确的错误消息,我们可能会提供帮助。无法打开登录请求的数据库“报告”。登录失败。用户“hp100\E101”登录失败。您需要为该用户在该数据库上分配权限。谷歌搜索肯定会给你很多结果。将
Data Source=(local)
更改为
Data Sourcee=Localhost\SQLEXPRESS
,看看发生了什么,停止了超时。现在它说无法打开登录请求的数据库“报告”。登录失败。请发布您的确切错误消息