在项目中包含数据库而不添加数据源?

在项目中包含数据库而不添加数据源?

对于我正在进行的项目,我已经创建了一个空数据库作为模板文件,并且需要将其包含在我的项目中。

仅当程序将文件复制到新位置时才会使用该文件。此后,所有工作都与新文件有关。我的代码完全符合我的要求;我只是不想仅仅为了复制一个文件而添加新数据源。

示例代码:

Imports System.IO    
Imports System.Data.OleDb    
Imports System.Windows.Forms    

FName = Directory & NewFile & ".mdb"    
FName2 = Directory & NewFile & ".rdb"    
'File.Copy(Application.StartupPath & "\Template.mdb", FName, False) 'old 
IO.File.WriteAllBytes(FName, My.Resources.Template)                 'new
Con = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & FName)    
Try    
  Con.Open()    
  SQLstr = String.Format("INSERT INTO tblParts (FILENAME) VALUES('{0}');", Name)    
  Command = New OleDbCommand(SQLstr, Con)    
  Command.ExecuteNonQuery()
Finally    
  Con.Close()    
End Try

'File.Copy(FName, FName2, False) 'old
'File.Delete(FName)              'old
FileSystem.Rename(FName, FName2) 'new

我可以在不添加新数据源的情况下将数据库文件添加到 Visual Studio 项目中吗?

解决方案:在“项目属性”中将文件添加为资源,并取消“数据源向导”。我还清理了创建和重命名文件的代码。旧代码已注释以供参考。

答案1

是的,您可以使用 Rclick -> 添加现有项目将几乎任何类型的文件添加到项目中。然后确保文件在其属性中设置为“内容”,并将其设置为“如果较新则复制”。这样,每当您更改模板时,在下一次构建时,文件都将根据您的构建配置复制到 \bin\debug 或 \bin\release 目录。

如果您正在做一个 ASP 项目,只需将其放在您的 bin 目录中,因为网站的构建方式与其他类型的项目不同。但请注意,部署中的网站永远不应该在被允许修改网站内任何文件(包括复制它们)的用户下运行,所以这对于网络来说不是一个好方法。

相关内容