Vb.net Access数据库列中的空格

Vb.net Access数据库列中的空格,vb.net,ms-access,Vb.net,Ms Access,当我保存到数据库时。它始终保存在Microsoft Access数据库中,前面有空格 可能是什么问题 我已删除该表并创建了另一个表。还是一样` 保存页面对密码进行了加密 Dim strPassword As String = txtpassword.Text Dim strAlgorigthm As String = "MD5" ' Members private to this particular instance of the sandwich class

当我保存到数据库时。它始终保存在Microsoft Access数据库中,前面有空格

可能是什么问题

我已删除该表并创建了另一个表。还是一样` 保存页面对密码进行了加密

    Dim strPassword As String = txtpassword.Text
    Dim strAlgorigthm As String = "MD5"


    ' Members private to this particular instance of the sandwich class


    'You can also specify these algorights RIPEMD160 or RIPEMD-160 ,SHA or SHA1 ,
    'SHA256 or SHA-256 ,SHA384 or SHA-384,SHA512 or SHA-512
    'SHA1Managed algorithm you must be instantiated directly like this "objAlg = new SHA1Managed()"

    Dim objAlg As HashAlgorithm = Nothing
    'Dim objAlg = New SHA1Managed(strAlgorigthm)
    objAlg = HashAlgorithm.Create(strAlgorigthm)

    ' Convert string to bytes
    Dim objData As Byte() = System.Text.Encoding.[Default].GetBytes(strPassword)

    ' Generate the hash code of password
    Dim objHashBytes As Byte() = objAlg.ComputeHash(objData)
    Dim encryppass As String
    encryppass = BitConverter.ToString(objHashBytes)
    'database connection starts from here

    Dim cn As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Application.StartupPath & "\inventory1.accdb")
    cn.Open()
    Dim cmd As New OleDbCommand
    cmd.CommandText = "SELECT * FROM tbltest1;"
    cmd.Connection = cn
    Dim updcmd As OleDb.OleDbCommand = New OleDb.OleDbCommand("INSERT INTO tbltest1 (userid, fullname, usersname, userspassword) VALUES (' " & txtuser.Text & " ',' " & txtfullname.Text & " ',' " & txtusername.Text & " ',' " & encryppass & " ')")
    Dim da As OleDb.OleDbDataAdapter = New OleDb.OleDbDataAdapter()
    updcmd.Connection = cn
    da.SelectCommand = cmd
    da.InsertCommand = updcmd
    Dim ds As DataSet = New DataSet("tbltest1")
    Try
        'cn.Open()
        da.Fill(ds, "tbltest1")
        Dim NewRow As DataRow = ds.Tables("tbltest1").NewRow
        ' Dim countr As Integer = ds.Tables("tblusers").Rows.Count
        NewRow.Item(Microsoft.VisualBasic.Trim("userid")) = txtuser.Text
        NewRow.Item(Microsoft.VisualBasic.Trim("fullname")) = txtfullname.Text
        NewRow.Item(Microsoft.VisualBasic.Trim("usersname")) = txtusername.Text
        NewRow.Item(Microsoft.VisualBasic.Trim("userspassword")) = encryppass


        ds.Tables("tbltest1").Rows.Add(NewRow)
        'Saving to database            
        da.Update(ds, "tbltest1")
        MsgBox("Information saved successfully", MsgBoxStyle.OkOnly)
        cn.Close()
    Catch Ex As Exception
        MsgBox(Ex.Message)
        Console.WriteLine(Ex.Message)
    End Try

在SQL命令的每个值前后插入空格。例如
值(“&txtuser.Text&”
。注意
之间的空格


另外,正如LarsTech所说,不要通过将值动态附加到SQL命令中来插入数据。请使用参数。

在哪一列中?始终使用参数以避免SQL注入和格式错误。您在SQL命令中的每个值前后都插入一个空格。例如,
values(“”&txtuser.Text&“
。注意
之间的空格。哦,正如拉尔斯泰克所说,不要这样做。使用参数。@拉尔斯泰克,谢谢你。我将了解如何使用参数,@Stevendogart,谢谢你的见解