无法访问C#中的远程数据库。
无法访问C#中的远程数据库。
我已经将连接字符串更改为指向远程服务器上的数据库。但是当我执行项目时,程序仍然指向本地数据库。
注释部分是我尝试过的不同连接字符串。在使用LocalDB时,我从来没有连接字符串。
连接构造函数:
public class TedalsContext : DbContext { public TedalsContext() : base("TedalsContext") { //Database.SetInitializer(null); } }
我正在使用SQL Server Express作为我的数据库。我还尝试过将构造函数中的base
参数名称更改为数据库的名称,但没有任何变化。
我已经尝试过通过SSMS访问数据库。我可以创建表,但我无法更改数据库名称(我没有重命名数据库TeDalSdev的访问权限)。
有其他解决方法吗?远程数据库的名称和本地数据库的名称是否应该相同以避免更改大量代码?
更新
控制器:
public class LsystemFamiliesController : Controller { private TedalsContext db = new TedalsContext(); //代码放在这里 }
无法访问C#中的远程数据库
在你的TedalsContext构造函数下面,使用:base(connectionStringName)
。
否则,上下文将将其视为Code First并在SQLExpress Local DB中创建一个TedalContext。
public class TedalsContext : DbContext { public TedalsContext() : base("TEDALS_Ver01.DAL.TedalsContext") { //Database.SetInitializer(null); } }
我已经尝试过了。请检查问题中的评论。已经有人建议过了...
你是否尝试将整个连接字符串插入base()
中?
是的。基于其他答案,我现在将我的base更改为默认连接。
无法在C#中访问远程数据库的问题出现的原因是连接字符串没有正确配置。解决方法是将连接字符串中的数据库上下文切换为默认连接,并注释掉本地数据库连接字符串。另外,需要检查配置文件是否位于正确的文件夹中,以及在控制器中是否添加了正确的连接字符串。
问题的原因是连接字符串没有正确配置。解决方法是将连接字符串中的数据库上下文切换为默认连接,并注释掉本地数据库连接字符串。另外,需要检查配置文件是否位于正确的文件夹中,以及在控制器中是否添加了正确的连接字符串。
在解决问题的过程中,还可以参考以下链接提供的信息:
1. How to: Access SQL Server Using Windows Integrated Security
2. What will be the connectionstring for mssql windows authentication
3. Connection string using Windows Authentication
此外,也建议联系Web托管提供商,因为可能存在与托管端的连接问题。
根据的问题和解决方法,用户将数据库上下文中的连接字符串切换为默认连接,并注释掉本地数据库连接字符串。并且在根目录下的配置文件中进行了正确的更改。用户还在控制器中添加了额外的代码base("name=TedalsContext")
,这样问题得到了解决。
最后,用户表示感谢提供的帮助,并表示通过链接和截图的方式更好地理解了问题的解决方法。