【发布时间】:2020-10-24 11:52:20
【问题描述】:
我有一个带有“dtschool.dbml”链接的数据库,我想在 SQL Server 中创建这个数据库 运行此代码时
Dim dt As New SchoolData.linqSchoolsDataContext
Dim sd As New SqlClient.SqlConnectionStringBuilder
sd.DataSource = "LAPTOP-AJM33RB1\TESTSERVER"
sd.IntegratedSecurity = True
dt.Connection.ConnectionString = sd.ConnectionString
dt.Connection.Open()
dt.CreateDatabase()
我看到了这个错误
System.Data.SqlClient.SqlException: 'CREATE FILE encountered operating system error 123(The filename, directory name, or volume label syntax is incorrect.) while attempting to open or create the physical file 'C:\Program Files\Microsoft SQL Server\MSSQL13.TESTSERVER\MSSQL\DATA\|DataDirectory|_Database_Schools_dtSchools.mdf.mdf'.
创建数据库失败。无法创建列出的某些文件名。检查相关错误。'
【问题讨论】:
-
如果您通过应用分发 MDF 文件,则不会调用
CreateDatabase。在这种情况下,您可以部署一个已经包含所需架构的文件,这样就不需要了。如果您正在创建一个新的附加数据库,您只需要创建一个数据库,您不能将其部署为您的应用程序的一部分。 -
@jmcilhinney 谢谢,如何用 dbml 创建数据库?我更新我的问题
-
路径包含无效字符
DATA\|DataDirectory| -
我不使用 L2S,但很明显该文件路径出了什么问题,因此您需要确定不正确部分的来源并更改为应有的内容。我的猜测是您在配置文件中有一个连接字符串,并且您只是将
"AttachDbFilename"值移动到"InitialCatalog",而它们的含义不同。如果您在连接字符串中将"InitialCatalog"设置为"|DataDirectory|_Database_Schools_dtSchools.mdf",那就是问题所在。数据库名称 gas 没有文件夹路径,也没有文件扩展名。应该是"_Database_Schools_dtSchools"。
标签: sql .net database vb.net linq