您的位置:首页 > 数据库

vb.net数据库连接的问题

2009-12-31 21:14 218 查看
今天上午写了一段代码,但最后 编译始终是出现了一个错误,把程序所需的数据库的位置改变了,我一直没有想明白这个问题是怎么发生的。但问题的根本还是没有明白。所以先做个记号。

我的数据库连接字符串是"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=/myrecord.mdb;Persist Security Info=False",这个就存在程序 的运行目录中的。当我调用 了一个方法以后,程序运行就会把这个数据库的位置改变。

这个方法我在想也没有改动过程序运行的位置

调用了这两个方法:

Dim img As String = MD5Compute(phbook.Id & UserName)
Phbookctr1.setimg(img)

这两个方法的源代码是这样的:

'md5加密函数,加密 id &user
Friend Function MD5Compute(ByVal str As String) As String
Dim md5 As New MD5CryptoServiceProvider
Dim username As Byte() = (New ASCIIEncoding).GetBytes(str)
'转换为哈希值Byte数组
Dim mdByte As Byte() = md5.ComputeHash(username)
'MD5Compute = (New ASCIIEncoding).GetString(mdByte)
Return System.BitConverter.ToString(mdByte) & ".bpg"
End Function

'设置头像
Public Sub setimg(ByVal img As String)
Dim imgfile As String = Application.StartupPath & "/userdata/" & img
If Open.FileName <> "" Then
My.Computer.FileSystem.CopyFile(Open.FileName, imgfile, True)
'Else
' MsgBox("未设置头像!")
End If
End Sub

如果 我的图片位置是在桌面,那么我所需的数据库文件也会在运行了这两个方法之后 出现错误,提示在桌面上找不到指定的文件。只要是图片在什么地方,那么数据库文件的路径就会变成那个地方,从而就导致程序的错误 。中午想了一半天没有想明白。如果把数据库的连接字符串改为Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Application.StartupPath & "/myrecord.mdb;Persist Security Info=False" 这样,那 么就不会出现问题了。

难道是因为运行application.startuppath改变了程序 所在的路径。但实际上我检查也没有发现这个变量的值 被改变。所以问题没有明白 。

晚上把代码拷回家,然后发现了一个错误“无法在证书存储区中找到清单签名证书 ”,这个错误是因为clickonce 引起的,把项目属性当中的签名的勾去掉就能解决 了。这是通过 搜索发现解决的方法的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: