vb.net - Access 数据库列中的空格
问题描述
当我保存到数据库时。它总是保存在 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 命令中的每个值之前和之后插入一个空格。例如VALUES (' " & txtuser.Text & " '
. '
注意和之间的空格"
。
此外,正如 LarsTech 所说,不要通过将值动态附加到 SQL 命令中来插入数据。使用参数。
推荐阅读
- ansible - 如何将shell输出设置为ansible中的变量
- vb.net - 将文本写入控制台缓冲区
- oauth-2.0 - 未经授权的错误 401 在 Angular 中获取贝宝的 OAUTH2 令牌
- css - 即使使用 !important 规则,容器类 css 声明也不起作用
- php - 如何从 WooCommerce 中的自定义 COD 附加费中排除税款?
- typescript - 依赖循环检测到.eslint 与 typeorm
- jquery - jQuery 验证插件:无法在 submitHandler 中调用默认提交
- csv - 使用 awk 对 csv 中的所有单元格求和
- c++ - 多纹理渲染(glActiveTexture 超出 GL_TEXTURE0)不起作用
- css - 材料 UI 选择行中的开口