【发布时间】:2021-09-08 19:05:17
【问题描述】:
Sub Save()
Try
con = New OleDbConnection(cs)
con.Open()
Dim cb As String = "insert into [Data] ([Fname],[Lname],[User],[Pass],[Birthday],[Role],[Pic]) VALUES (@Fname,@Lname,@Username,@Password,@Birthday,@Role,@Pic)"
Dim i As New Integer
cmd = New OleDbCommand(cb)
cmd.Connection = con
cmd.Parameters.Clear()
cmd.Parameters.Add(New OleDbParameter("@Fname", System.Data.OleDb.OleDbType.VarChar, 250, "Fname"))
cmd.Parameters.Add(New OleDbParameter("@Lname", System.Data.OleDb.OleDbType.VarChar, 250, "Lname"))
cmd.Parameters.Add(New OleDbParameter("@User", System.Data.OleDb.OleDbType.VarChar, 250, "Username"))
cmd.Parameters.Add(New OleDbParameter("@Pass", System.Data.OleDb.OleDbType.VarChar, 250, "Password"))
cmd.Parameters.Add(New OleDbParameter("@Birthday", System.Data.OleDb.OleDbType.Date, 250, "Birthday"))
cmd.Parameters.Add(New OleDbParameter("@Role", System.Data.OleDb.OleDbType.VarChar, 250, "Role"))
cmd.Parameters.AddWithValue("@Fname", txt_Fname.Text)
cmd.Parameters.AddWithValue("@Lname", txt_Lname.Text)
cmd.Parameters.AddWithValue("@Username", txt_User.Text)
cmd.Parameters.AddWithValue("@Password", txt_Pass.Text)
cmd.Parameters.AddWithValue("@Birthday", CDate(Birthday.Value))
cmd.Parameters.AddWithValue("@Role", cb_role.Text)
Dim FileSize As New UInt32
Dim mstream As New System.IO.MemoryStream
Register_picture.Image.Save(mstream, System.Drawing.Imaging.ImageFormat.Jpeg)
Dim picture() As Byte = mstream.GetBuffer
FileSize = mstream.Length
mstream.Close()
cmd.Parameters.AddWithValue("@Pic", picture)
i = cmd.ExecuteNonQuery
If i > 0 Then
MsgBox("New User Register Succesfully!", vbInformation)
Else
MsgBox("New User Register Fail!", vbCritical)
End If
Catch ex As Exception
MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub
【问题讨论】:
-
您的问题是因为您将所有参数添加了两次;删除所有
AddWithValue调用,然后将OleDbParameterread more here 上的Value属性设置为您需要的值。 -
请澄清您的具体问题或提供其他详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。