最近的工作与web api有关,牵涉到了数据库,使用C#编写,在链接数据库
public static string connectionString =
@"Data Source=.\SQLEXPRESS;AttachDbFilename= \自己的路径\App_Data\xxx.mdf;Integrated Security=True;User Instance=True";
using (SqlConnection Conn = new SqlConnection(DatabaseParm.connectionString))
{
Conn.Open();
}
时出现如下错误
出现这个现象,是因为Visual Studio 2019 内置的是SQL Server 2016 Express LocalDB,而数据库mdf文件用的是SQL Server 2019 LocalDB,vs中的localdb版本太低了,那就重新安装了SQL Server 2019 数据库(这应该可以不用安装,可以先进行下面的步骤,如果还是不行,那就再安装这个数据库吧)。安装过程已有,这里不再赘述,链接如下:
安装好后,运行到那一行代码,仍然报出这个错误。为什么呢?因为VS 2019用的仍然是内置的LocalDB,不是本机的SQL Server。那就替换VS的LocalDB吧。
-
下载安装SQL Server Express:
下载之后,双击exe文件,点下载介质
在弹出的页面中,选择LocalDB(第三个),点击下一步下载SqlLocalDB.msi
下载后安装,安装后在程序和工程中可以看到:
SQL Server 2019 LocalDB是刚刚新安装的,2016 LocalDB是vs2019内置的。
2.启动 LocalDB 并连接到 LocalDB:
首次启动2019 LocalDB需要创建实例:
启动cmd,在命令行中输入如下代码
REM Create an instance of LocalDB
"C:\Program Files\Microsoft SQL Server\150\Tools\Binn\SqlLocalDB.exe" create LocalDBApp1
REM Start the instance of LocalDB
"C:\Program Files\Microsoft SQL Server\150\Tools\Binn\SqlLocalDB.exe" start LocalDBApp1
REM Gather information about the instance of LocalDB
"C:\Program Files\Microsoft SQL Server\150\Tools\Binn\SqlLocalDB.exe" info LocalDBApp1
然后在文件夹C:\Users\用户名\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances会多出一个实例(AppData若是没有,可能被隐藏了):
接下来就是链接数据库了,VS2019中打开服务资源管理器,找到数据连接右键-》添加连接,
数据源选择Microsoft SQL Server (SqlClient),服务器名为(LocalDb)\LocalDBApp1,附加数据库文件就是自己的mdf文件
点击测试连接,出现测试连接成功弹窗,然后点确定,这里我们就可以看数据库的结构了。
然后我继续运行代码,到那个位置仍报错,仔细研究下代码
public SqlConnection(string connectionString);
connectionString: 用于打开 SQL Server 数据库的连接。
再看connectionString中参数的设定项Data Source、AttachDbFilename、Integrated Security、User Instance和界面添加连接是一样的(添加连接界面中点开高级选项)
继续修改代码:
public static string connectionString =
@"Data Source=(LocalDB)\LocalDBApp1;AttachDbFilename=\自己的路径\App_Data\xxx.mdf;Integrated Security=True;User Instance=False";
using (SqlConnection Conn = new SqlConnection(DatabaseParm.connectionString))
{
Conn.Open();
}
运行正常,大功告成!
如果对你有帮助,请不要吝啬你的赞啊👍