如何连接到 MDF 数据库文件?

     2023-04-12     41

关键词:

【中文标题】如何连接到 MDF 数据库文件?【英文标题】:How do I connect to an MDF database file? 【发布时间】:2012-02-14 03:20:19 【问题描述】:

我第一次尝试将 C# 应用程序连接到 MDF 数据库,我需要一些帮助..

我在 Visual Studio 2010 中制作了一个小型 MDF 数据库文件,然后创建了另一个项目并将该文件导入到项目本身中。

我没有尝试通过代码连接到 MDF 文件。这是我正在使用的代码:

namespace DBtestApp1

    public partial class Form1 : Form
    
        public Form1()
        
            InitializeComponent();
        
        System.Data.SqlClient.SqlConnection con;
        private void Form1_Load(object sender, EventArgs e)
        
            con = new System.Data.SqlClient.SqlConnection();
            con.ConnectionString = "DataSource=.\\SQLEXPRESS; AttachDbFilename =SampleDatabase.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";
            con.Open();
            MessageBox.Show("Connection opened");
            con.Close();
            MessageBox.Show("Connection closed");
        
    

当我运行应用程序时,我在定义连接字符串的那一行得到一个异常,并且异常在堆栈顶部有这条消息:

System.ArgumentException: Keyword not supported: 'datasource'.

有人能指出我正确的方向吗?

【问题讨论】:

这篇文章可能会有所帮助:[如何在一个简单的 Web 项目中连接到 .mdf(Microsoft SQL Server 数据库文件)?][1] Cheerz [1]:***.com/questions/173209/… 【参考方案1】:

Data Source之间添加空格

 con.ConnectionString = @"Data Source=.\SQLEXPRESS;
                          AttachDbFilename=c:\folder\SampleDatabase.mdf;
                          Integrated Security=True;
                          Connect Timeout=30;
                          User Instance=True";

【讨论】:

在编辑时,删除; AttachDbFilename =中的空格 试过了,但现在我得到了以下异常:System.Data.SqlClient.SqlException (0x80131904): An attempt to attach an auto-named database for file SampleDatabase.mdf failed. A database with the same name exists, or specified file cannot be opened, or it is located on UNC share. 需要指定sampleDatabase.mdf的路径。看看编辑过的帖子。 但是当我已经将MDF文件添加到项目的本地资源时,为什么还要指定完整路径呢? .. 我不想硬编码路径,因为这意味着 MDF 文件必须始终存在.. 我可以不引用它在项目中的本地存在吗? 我正在考虑编辑它,以便将字符串连接起来以消除水平滚动,但恐怕我对此了解不够,无法相信自己不会让答案不正确。 【参考方案2】:

转到服务器资源管理器 > 您的数据库 > 右键单击​​ > 属性 > ConnectionString 并复制连接字符串并将复制到的连接字符串代码过去:)

【讨论】:

迄今为止我见过的最好的答案之一 :) 这将在您在另一台机器上尝试时中断。虽然该连接字符串对您的机器有效,但如果您花一点时间阅读它,您会注意到它的路径是硬编码的。【参考方案3】:
string sqlCon = @"Data Source=.\SQLEXPRESS;" +
                @"AttachDbFilename=|DataDirectory|\SampleDB.mdf;
                Integrated Security=True;
                Connect Timeout=30;
                User Instance=True";
SqlConnection Con = new SqlConnection(sqlCon);

文件路径应该有|DataDirectory|,它实际上链接到“当前项目目录\App_Data\”或“当前项目目录”并获取.mdf文件.....放置.mdf在这些地方中的任何一个并且应该在visual studio 2010中工作。当您在生产系统上使用独立应用程序时,可执行文件所在的当前路径应该有.mdf文件。

【讨论】:

【参考方案4】:

对于 Visual Studio 2015,连接字符串是:

"Data Source=(localdb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|Database1.mdf;Integrated Security=True"

【讨论】:

这是唯一对我有用的 MDF。我正在使用 .Net Core 3 的 VS2019。【参考方案5】:
Server=.\SQLExpress;AttachDbFilename=c:\mydbfile.mdf;Database=dbname; Trusted_Connection=Yes;

【讨论】:

我试过这个修改版""Server=.\\SQLExpress;AttachDbFilename=SampleDatabase.mdf;Database=SampleDatabase; Trusted_Connection=Yes",得到了如下异常:System.Data.SqlClient.SqlException (0x80131904): A file activation error occurred. The physical file name 'SampleDatabase.mdf' may be incorrect. Diagnose and correct additional errors, and retry the operation. Cannot attach the file 'SampleDatabase.mdf' as database 'SampleDatabase'.【参考方案6】:

替代解决方案,您可以将数据库放在解决方案中所需的文件夹中。这对我有用:

.ConnectionString(@"Data Source=(LocalDB)\MSSQLLocalDB;
                    AttachDbFilename="+AppDomain.CurrentDomain.BaseDirectory+"Folder1\\Folder2\\SampleDatabase.mdf" + ";
                    Integrated Security=True;")

【讨论】:

【参考方案7】:
SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=E:\Samples\MyApp\C#\bin\Debug\Login.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");

这对我有用...有什么办法可以缩短路径吗?喜欢

SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=\bin\Debug\Login.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");

【讨论】:

SQL Server Express 连接到 .mdf 文件

...。突然,我无法再通过SQLServer对象资源管理器连接到.mdf数据库文件并收到以下错误:无法打开数据库“aspnet 查看详情

连接到本地 db 文件 (.mdf) 的连接字符串是啥

...】:我在sqlserver实例SQLEXPRESS中使用如下连接字符串连接数据库:QStringconnStr="DRIVER=SQLSERVER;SERVER=% 查看详情

连接到 sql server 数据库 mdf 文件而不在客户端计算机上安装 sql server?

】连接到sqlserver数据库mdf文件而不在客户端计算机上安装sqlserver?【英文标题】:Connectingtosqlserverdatabasemdffilewithoutinstallingsqlserveronclientmachine?【发布时间】:2011-01-0412:33:43【问题描述】:我正在创建一个需要使用sqlserver数据库的... 查看详情

如何发布带有数据库 (.mdf) 的 3 层 WinForms 应用程序?

】如何发布带有数据库(.mdf)的3层WinForms应用程序?【英文标题】:HowdoIpublisha3-tierWinFormsapplicationwithdatabase(.mdf)?【发布时间】:2021-12-1005:00:04【问题描述】:场景我正在开发一个3层Winforms应用程序,该应用程序在数据库层中有一... 查看详情

无法创建文件“*.mdf”,因为它已经存在

...work。应用程序连接到MSSQLServer并且一切正常。然后我分离数据库并将.mdf文件复制到app文件夹并更改连接字符串以使用本地.mdf文件,仍然一切正常。问 查看详情

mdf localdb上的不同用户帐户授权

...,我有一个服务在低级别运行并连接到sqlserverlocaldb的mdf数据库。但是该服务在连接数据库时使用了不同的帐户\'AUTHORITYNT\\SYSTEM\',它不会让任何其他高级程序连接到数据库。反之亦然, 查看详情

如何连接到位于项目文件夹内的数据库

】如何连接到位于项目文件夹内的数据库【英文标题】:Howtoconnecttoadatabaselocatedinsideprojectfolder【发布时间】:2018-01-1918:09:45【问题描述】:也许这是一个愚蠢的问题,但我是数据库新手,我不知道该怎么做。我使用以下代码行... 查看详情

如何将 pyodbc 连接到 Access (.mdb) 数据库文件

】如何将pyodbc连接到Access(.mdb)数据库文件【英文标题】:HowtoconnectpyodbctoanAccess(.mdb)Databasefile【发布时间】:2010-07-1500:51:14【问题描述】:这是我尝试过的:-通过搜索找到Vista的ODBC数据源管理器*,-添加新的文件数据源*,选择Micr... 查看详情

c#如何连接sol

...字符串连接和配置文件连接。一个连接字符串的例子是对数据库文件NORTHWEND.MDF的连接Data Source=.\\SQLEXPRESS; AttachDbFilename=C:\\...\\NORTHWND.MDF; Integrated Security=True; Connect Timeout=30; User Instance=True数据源的值... 查看详情

如何通过 sql developer 连接到 sql 数据库? [关闭]

】如何通过sqldeveloper连接到sql数据库?[关闭]【英文标题】:HowdoIconnecttoasqldatabasethroughsqldeveloper?[closed]【发布时间】:2011-09-2615:46:14【问题描述】:所以,我已经下载了一个.sql文件,我想知道如何通过我也下载的sqldeveloper连接... 查看详情

如何使用 Python 通过 SSL 连接到远程 PostgreSQL 数据库

】如何使用Python通过SSL连接到远程PostgreSQL数据库【英文标题】:HowtoconnecttoaremotePostgreSQLdatabasethroughSSLwithPython【发布时间】:2015-03-2911:27:17【问题描述】:我想通过Python连接到远程PostgreSQL数据库来做一些基本的数据分析。该数... 查看详情

有两个 docker-compose 文件时如何连接到 postgres 数据库?

】有两个docker-compose文件时如何连接到postgres数据库?【英文标题】:Howtoconnecttoapostgresdatabasewhenhavingtwodocker-composefiles?【发布时间】:2021-04-1417:18:42【问题描述】:首先我使用Dockerfile构建了一个镜像:FROMopenjdk:8-jdk-alpineARGJAR_FILE=... 查看详情

我的可执行 JavaFX 文件如何连接到 MySQL 数据库?

】我的可执行JavaFX文件如何连接到MySQL数据库?【英文标题】:HowdoesmyexecutableJavaFXfileconnecttoaMySQLdatabase?【发布时间】:2019-12-2321:23:42【问题描述】:我最近完成了我的第一个JavaFX应用程序的工作。它与设置在本地服务器上的MySQL... 查看详情

Qt 如何连接到 android OS 中现有的 SQLite 文件?

...接到我的qt5.2项目(在Android操作系统中)中的现有SQLlite数据库文件。我应该在哪里保存此文件以使用此代码加载它:QSqlDatabase::addDatabase("my 查看详情

如何将 Blazor WebAssembly 连接到数据库

】如何将BlazorWebAssembly连接到数据库【英文标题】:HowtoconnectBlazorWebAssemblytoDataBase【发布时间】:2021-01-0718:51:47【问题描述】:我最近开始开发BlazorWebAssembly应用程序,现在我正在着手建立数据库连接。所有课程和说明都说需要... 查看详情

如何将多个 csv 文件连接到 pandas 数据框中,文件名作为行名?

】如何将多个csv文件连接到pandas数据框中,文件名作为行名?【英文标题】:HowdoIconcatenatemultiplecsvfilesintoapandasdataframe,withthefilenamesastherownames?【发布时间】:2019-03-2720:19:13【问题描述】:对于第1部分,我有多个csv文件,我循环... 查看详情

如何在 Go 中使用 .crt 文件通过 ssl 连接到 mongoDB

...述】:我正在尝试使用.crt文件连接到托管在azure中的mongo数据库。我可以使用命令从我的linux机器终端成功连接:mongomongodb://username:password@prod-replicaset 查看详情

Excel - 如何连接到另一个 Excel 文件?

】Excel-如何连接到另一个Excel文件?【英文标题】:Excel-HowtoconnecttoanotherExcelfile?【发布时间】:2018-04-2522:48:13【问题描述】:我有一个很大的电子表格(Excel文件A),每个月都会更新。另外,我在另一个Excel文件(文件B)中创建... 查看详情