对于我正在进行的项目,我已经创建了一个空数据库作为模板文件,并且需要将其包含在我的项目中。
仅当程序将文件复制到新位置时才会使用该文件。此后,所有工作都与新文件有关。我的代码完全符合我的要求;我只是不想仅仅为了复制一个文件而添加新数据源。
示例代码:
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 目录中,因为网站的构建方式与其他类型的项目不同。但请注意,部署中的网站永远不应该在被允许修改网站内任何文件(包括复制它们)的用户下运行,所以这对于网络来说不是一个好方法。