1

我是一个新手程序员,我遇到了 sqldatasource 的问题。在我的项目中,我有一个名为“KFS”的数据库。我有一个gridview 和sqldatasource 作为gridview 的数据源。我有一个这样的连接字符串:

"KFSConnectionString" 
connectionString="Data Source=.\sqlexpress;Initial Catalog=KFS;Integrated Security=True"
providerName="System.Data.SqlClient"

这在 VS2008 中有效,但是当我在我的网站上加载它时,它不起作用。我应该如何更改我的连接字符串?

4

4 回答 4

1

在 Visual Studio 中运行时,您可以连接到本地系统上的数据库。当您将网站发布到 Web 服务器时,它没有可连接的本地数据库。您需要将数据库放在 SQL 服务器上(或使用 App_Data 中的本地 MDF 文件)并相应地调整连接字符串。

与应用程序中本地文件的连接如下所示:

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

有关一些不同的连接字符串选项,请参阅此参考。

这是有关如何在 ASP.NET 和 VS2005 中访问数据的参考。我认为这应该仍然适用,至少在连接字符串方面。

于 2009-09-01T02:16:42.070 回答
1

连接字符串的数据源属性中的“.\sqlexpress”告诉应用程序连接到同一台计算机上的 SQL Server。如果您的网络服务器在另一台计算机上,您需要替换“.”。与您的计算机的名称。\sqlexpress 部分是您不需要更改的 SQL Server 实例的名称。

您还需要确保您的 SQL Server 允许远程连接。默认情况下,我认为不会。您可以使用 SQL Server 外围应用配置工具来更改远程连接权限。当您在开始菜单中的 Microsoft SQL Server 200x --> Configuration Tools 文件夹下安装 SQL Server 时,应该已经安装了 SAC 工具。查看服务和连接的外围区域配置,并在其中找到远程连接项。

于 2009-09-01T02:17:08.933 回答
0

我猜想(或两者)“数据源”和/或“集成安全性”都不正确。您的连接字符串表示数据库与 Web 服务器位于同一台服务器上(由“.”表示),并且该数据库是 MSSQL Express,使用命名实例(由 .\“express”表示)“集成安全 = true " 表示应该使用运行 Web 服务器的 aspx 页面的帐户来尝试访问数据库。根据我的经验,这些东西都不太可能出现在第三方托管网站上。该数据库很可能位于不同的服务器上,并且具有特定的凭据(用户名/密码)。我建议致电您的托管服务提供商的支持或检查您从他们那里获得的任何激活电子邮件。

再说一次,你可能在谈论你的“网站”,意思是你的开发机器上的 IIS(而不是 vs2008 的内置服务器),我可能已经浪费了几分钟的时间来输入这个。:D

-Oisin

于 2009-09-01T02:18:38.650 回答
0

它应该在本地工作,但是当您在服务器上上传时,您应该发布服务器 IP 地址。

于 2010-02-13T09:04:04.333 回答