【问题标题】:Error "CREATE FILE encountered operating system error 123" linq vb.net错误“创建文件遇到操作系统错误 123”linq vb.net
【发布时间】: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'.

创建数据库失败。无法创建列出的某些文件名。检查相关错误。'

error

【问题讨论】:

  • 如果您通过应用分发 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


【解决方案1】:

使用此方法

Sub CreatesqldatabaseMSQL()
            Try
                Using connect As New DataSchool(Data Source=.;Initial Catalog=DatabaseName;Integrated Security=True)
                    connect.CreateDatabase()
                End Using
            Catch ex As Exception
               MessageBox.Show(ex.Message)
            End Try
        End Sub

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-08-03
    • 2019-01-07
    • 2020-07-14
    • 1970-01-01
    • 2012-06-19
    • 2013-05-18
    • 1970-01-01
    相关资源
    最近更新 更多