我是一名新手程序员,我遇到sqldatasource问题。在我的项目中,我有一个名为“KFS”的数据库。我有一个gridview和sqldatasource作为gridview的数据源。我有一个类似的连接字符串:
"KFSConnectionString"
connectionString="Data Source=.\sqlexpress;Initial Catalog=KFS;Integrated Security=True"
providerName="System.Data.SqlClient"
这在VS2008中有效但是当我在我的网站上加载它时,它不起作用。我该如何更改连接字符串?
答案 0 :(得分:1)
在Visual Studio中运行时,您可以连接到本地系统上的数据库。将Web站点发布到Web服务器时,没有可供其连接的本地数据库。您需要将数据库放在SQL服务器上(或在App_Data中使用本地MDF文件)并相应地调整连接字符串。
与应用程序中本地文件的连接看起来像这样:
Server=.\SQLExpress;AttachDbFilename=|DataDirectory|mydbfile.mdf;
Database=dbname;Trusted_Connection=Yes;
请参阅此参考资料,了解各种connection string options。
这是一个reference on how to access data in ASP.NET and VS2005。我认为这仍然适用,至少对于连接字符串而言。
答案 1 :(得分:1)
连接字符串的Data Source属性中的'。\ sqlexpress'告诉应用程序连接到同一台计算机上的SQL Server。如果您的Web服务器位于另一台计算机上,则需要替换“。”用你的电脑名称。 \ sqlexpress部分是您不需要更改的SQL Server实例的名称。
您还希望确保SQL Server允许远程连接。默认情况下,我不认为这样做。您可以使用SQL Server外围应用配置工具更改远程连接权限。在Microsoft SQL Server 200x下安装SQL Server时应该已经安装了SAC工具 - > “开始”菜单中的“配置工具”文件查看服务和连接的表面区域配置,然后找到远程连接项。
答案 2 :(得分:0)
我猜测“数据源”和/或“集成安全性”中的任何一个(或两者)都是错误的。您的连接字符串表示数据库与Web服务器位于同一服务器上(用“。”表示),并且数据库是MSSQL Express,使用命名实例(由。\“express”表示)“integrated security = true “表示运行Web服务器的aspx页面的帐户应该用于尝试访问数据库。根据我的经验,这些东西都不可能出现在第三方托管网站上。数据库很可能位于不同的服务器上,并具有特定凭据(用户名/密码)。我建议致电您的托管服务提供商的支持或检查您从他们那里获得的任何激活电子邮件。
然后,你可能会谈论你的“网站”,意思是你的开发盒上的IIS(而不是vs2008的内置服务器),我可能浪费了几分钟来打字。 :d
-Oisin
答案 3 :(得分:0)
它应该在本地工作,但是当你在服务器上传时,你应该发布服务器IP地址。