我目前正在構建一個程序,需要大量的員工才能使用我的程序,並且程序位於網絡上的共享驅動器上,以便所有用戶都可以訪問該程序。在我的程序中,我有一個數據庫,用於管理所有用戶帳戶和其他信息。當您在網絡上首次運行該程序時,它會要求管理員在哪裏創建數據庫。程序創建數據庫後,我將連接字符串保存到我的程序中的類模塊中的字符串變量。但是,一旦我退出程序,我設置類中字符串變量的值被清除。有沒有辦法在關閉程序後防止字符串丟失值?我知道我可以通過my.settings做到這一點,但我不想這樣做。VB.NET如何保存課程模塊中的程序設置
0
A
回答
0
您可以使用二進制序列化器製作您自己的設置文件。
此方法可用於將設置類的實例存儲到文件中,該文件不易讀取。如果需要可讀性和可編輯性,則可以使用xml序列化器。設置文件將駐留在應用程序目錄中。你可以用變量settingsFileName
來控制它。
創建一個新的控制檯應用程序並粘貼下面的代碼。運行它幾次,並注意「連接字符串」通過應用程序關閉和打開持久。
Imports System.IO
Imports System.Runtime.Serialization.Formatters.Binary
Module Module1
Private settingsFileName As String = "Settings.bin"
Private mySettingsClass As SettingsClass
Private Sub loadSettings()
Dim formatter As New BinaryFormatter()
If File.Exists(settingsFileName) Then
Using stream As New FileStream(settingsFileName, FileMode.Open)
mySettingsClass = CType(formatter.Deserialize(stream), SettingsClass)
End Using
Else
Using Stream As New FileStream(settingsFileName, FileMode.CreateNew)
mySettingsClass = New SettingsClass()
formatter.Serialize(Stream, mySettingsClass)
End Using
End If
End Sub
Private Sub saveSettings()
Dim formatter As New BinaryFormatter()
If File.Exists(settingsFileName) Then
Using stream As New FileStream(settingsFileName, FileMode.Truncate)
formatter.Serialize(stream, mySettingsClass)
End Using
Else
Using stream As New FileStream(settingsFileName, FileMode.CreateNew)
formatter.Serialize(stream, mySettingsClass)
End Using
End If
End Sub
<Serializable>
Public Class SettingsClass
Public Property ConnectionString As String = ""
End Class
Sub Main()
Console.WriteLine("Loading settings...")
loadSettings()
Dim connectionString = mySettingsClass.ConnectionString
Console.WriteLine("Connection string: ""{0}""", connectionString)
Console.WriteLine("Enter new connection string...")
mySettingsClass.ConnectionString = Console.ReadLine()
Console.WriteLine("Saving settings...")
saveSettings()
Console.WriteLine("Done!")
Console.ReadLine()
End Sub
End Module
到SettingsClass
可以在其他地方應用程序中使用添加附加屬性。
相關問題
- 1. 如何保存應用程序設置?
- 2. 如何設置與課程
- 3. 如何在vb.net中保存設置
- 4. 如何跨模塊存儲應用程序設置
- 5. 如何在Sencha中設置課程
- 6. 完形填空課程設置課程
- 7. 保存矩陣類到應用程序設置VB.net
- 8. 如何設置應用程序設置而不保存在c#
- 9. Moodle:如何在新課程中設置默認塊及其順序?
- 10. 如何設置java程序的默認保存位置?
- 11. 何時保存Apple設置應用程序的設置?
- 12. 如何在c#應用程序設置中保存byte []
- 13. 如何將ArrayList保存到應用程序設置中
- 14. 應用程序設置保存
- 15. 保存應用程序設置vb2008
- 16. 應用程序設置不保存
- 17. 程序員可以去SAP課程的功能模塊嗎?
- 18. 如何模塊化課堂設計?
- 19. 如何保留引用程序集的應用程序設置?
- 20. 如何保存我的應用程序設置?
- 21. 如何保存MFC應用程序的佈局設置?
- 22. 如何使用VB.net在wince應用程序中保存日期
- 23. 設置SCORM課程進度
- 24. 如何使用反射設置VB.NET模塊中的字段值?
- 25. 課程項目的Java程序設計
- 26. VB.Net應用程序設置/的ClickOnce
- 27. 的Moodle - 無效課程模塊ID
- 28. 如何在PHP中保護課程
- 29. 如何從其他課程保存課程,也就是生成/編譯/構建
- 30. 如何存儲應用程序設置?
如果只有一個值要保存,很難理解爲什麼你不想使用設置。否則基本上重新創建輪子:將其保存到本地文件中。 – Plutonix
否關閉程序時無法停止字符串丟失,因爲在關閉程序時該字符串不存在。如果你希望在會話之間保持一個值,那麼唯一的辦法就是把它寫在外部的地方。這正是'My.Settings'所做的。如果你不想使用'My.Settings',那麼你必須自己做。當您再次啓動應用程序時,您必須從文件中重新讀取數據。這正是'My.Settings'所做的。 – jmcilhinney
@Plutonix,我能想到的一個正當理由是,'My.Settings'使用每個用戶的值進行讀寫設置,並修改只讀的每應用程序設置,您必須是管理員用戶。 – jmcilhinney