繁体   English   中英

连接字符串ASP.NET LocalDB

[英]Connection string ASP.NET LocalDB

目前,我无法连接服务器上的数据库,但在本地运行时可以正常工作。 我在控制器中使用此连接字符串:

@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename='|DataDirectory|\Test.mdf';";

控制器代码:

namespace PathTest.Controllers
{
    public class HomeController : Controller
    {
        string connectionString = @"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename='|DataDirectory|\Test.mdf';";

        public ActionResult Index()
        {
            DataTable daTbl = new DataTable();

            using(SqlConnection sqlCon = new SqlConnection(connectionString))
            {
                sqlCon.Open();

                SqlDataAdapter sqlDa = new SqlDataAdapter("SELECT * FROM Numbers", sqlCon);
                sqlDa.Fill(daTbl);

            }

            return View(daTbl);
        }
    }
}

在服务器上运行时出错:

说明:执行当前Web请求期间发生未处理的异常。 请查看堆栈跟踪,以获取有关错误及其在代码中起源的更多信息。

异常详细信息: System.Data.SqlClient.SqlException:建立与SQL Server的连接时发生与网络相关或特定于实例的错误。 服务器未找到或无法访问。 验证实例名称正确,并且已将SQL Server配置为允许远程连接。 (提供者:SQL网络接口,错误:50-发生本地数据库运行时错误。指定的LocalDB实例名称无效。)

任何帮助,将不胜感激

首先,我相信您不想在生产服务器上运行localdb。 您应该在服务器上部署SQL Server实例(如果尚未部署),因此连接字符串应为:

"Server=[Server IP/Name];Database=MSSQLLocalDB;User Id=[Some User Created];Password=[Password of User Created];"

如果我错了,并且希望在服务器上使用localdb,则需要检查SQL Server Express服务是否正在运行。

如果是,请检查数据库文件是否存在,如果不存在,则可以使用工具sqllocaldb为Express实例创建本地数据库。

最后,您可以使用.config文件的配置管理器保留两个连接字符串(可以在Debug配置文件上使用本地数据库,在Release配置文件上使用服务器数据库)。

希望对您有帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM