我对Visual Basic的本地数据库有疑问。到目前为止,我已成功:1。创建一个本地数据库,命名为Database1 2.创建一个包含值的表(用户名,密码,年份/部分,secretquestion,secretanswer)3。在form1中创建一个数据集(以获取form2的条目)4。在表格2中创建一个注册表格(5个标签/文本框,以获取用户名,密码,年份/部分,秘密,秘密)
这是我目前的Form2代码:
Public Class Form2
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim sqlConnection1 As New System.Data.SqlClient.SqlConnection("Data Source=C:\Users\Bounty Hounds\AppData\Local\Temporary Projects\WindowsApplication1\Database1.sdf")
Dim cmd As New System.Data.SqlClient.SqlCommand
cmd.CommandType = System.Data.CommandType.Text
cmd.CommandText = "INSERT Username (user) Password (pass) Year/Section (yns) SecretQuestion (sq) SecretAnswer (sa)"
cmd.Connection = sqlConnection1
sqlConnection1.Open()
cmd.ExecuteNonQuery()
sqlConnection1.Close()
End Sub
Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
Dim user As String
user = TextBox1.Text
End Sub
Private Sub TextBox2_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox2.TextChanged
Dim pass As String
pass = TextBox2.Text
End Sub
Private Sub TextBox3_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox3.TextChanged
Dim yns As String
yns = TextBox3.Text
End Sub
Private Sub TextBox4_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox4.TextChanged
Dim sq As String
sq = TextBox4.Text
End Sub
Private Sub TextBox5_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox5.TextChanged
Dim sa As String
sa = TextBox5.Text
End Sub
End Class
但是当我单击注册按钮时它会给我一个错误并指向sqlConnection1.Open()行,错误是:“建立与SQL Server的连接时发生网络相关或特定于实例的错误。找不到服务器或无法访问服务器。验证实例名称是否正确以及SQL Server是否配置为允许远程连接。“
在数据库资源管理器中,我看到我的Database1.sdf在其图标上有一个X(小黄色圆柱体)并检查其状态是否已关闭,所以我尝试通过右键单击它打开它,然后修改连接,放置Database1数据库中的.sdf路径,输入我的密码并按下确定。那时我看到我的Database1.sdf状态变为“Open”但是当我运行我的应用程序时,状态再次变为“已关闭”(顺便说一下,我通过右键单击解决方案资源管理器中的Database1.sdf来看到这种状态)。
下面的这段文字与我上面的代码几乎没有关系,我只是希望你对我想要创建的软件的最佳方法有什么看法,所以如果你只想帮助我修改我的代码,我非常感兴趣,你可以停止阅读下面的段落,但如果你花时间考虑阅读它,这对我来说意味着很多。致谢
视觉基本形式和数据库的连接是我真正想要做的第一步,我的主要目标是两台PC之间的文件存储系统,一旦我找到这两台PC,我就会增加。
为了达到这个目标,我试图划分每个问题,以便我可以相应地解决它们并最终完成整个软件。
最后,最大的问题是,所有这些都可能与Visual Basic有关吗?我使用漫游用户配置文件尝试使用Windows Active Directory,但我真的想开发自己的软件。
编辑: @Jimmy Smith
感谢您的回复,我决定创建另一个名为CCS的数据库,我的form2新代码是:
Dim conn As New System.Data.SqlServerCe.SqlCeConnection()
Dim cmd As New System.Data.SqlClient.SqlCommand
conn.ConnectionString = _
"Persist Security Info = False; Data Source = 'C:\Users\Bounty Hounds\Documents\Visual Studio 2010\Projects\WindowsApplication2\WindowsApplication2\CCS.sdf';" & _
"Password = joshua8; File Mode = 'shared read'; "
conn.Open()
cmd.CommandType = System.Data.CommandType.Text
cmd.CommandText = "INSERT Username (user) Password (pass) Year/Section (yns) SecretQuestion (sq) SecretAnswer (sa)"
但是,它会生成一个新错误: 存在文件共享违规。不同的进程可能正在使用该文件。 [C:\ Users \ Bounty Hounds \ Documents \ Visual Studio 2010 \ Projects \ WindowsApplication2 \ WindowsApplication2 \ CCS.sdf]
答案 0 :(得分:1)
您无法直接连接到SDF文件而无需使用Compact Edition库。不幸的是,它没有默认安装,因为微软似乎正在逐步淘汰它。
使用System.Data.SqlserverCe.SqlCeConnection代替System.Data.SqlClient.SqlConnection
http://visualstudiogallery.msdn.microsoft.com/0e313dfd-be80-4afb-b5e9-6e74d369f7a1 http://msdn.microsoft.com/en-us/library/system.data.sqlserverce.sqlceconnection(v=vs.100).aspx