vb.net数据库连接的问题

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

我的数据库连接字符串是"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 引起的,把项目属性当中的签名的勾去掉就能解决 了。这是通过 搜索发现解决的方法的。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值