Reputation: 43
im just a newbie in vb.net, i've searched google but i can't connect those to my problem or let say i still can't figure it... Im getting error to "Convert from string "qwerty" to 'double' is not valid".....................qwerty = Username i would really appreciate any help.
Dim conn As New OleDbConnection
Dim cmd As New OleDbCommand
Dim sSQL As String = String.Empty
Try
conn = New OleDbConnection(Get_Constring)
conn.Open()
cmd.Connection = conn
cmd.CommandType = CommandType.Text
If Me.txtusername.Tag = 0 Then
sSQL = "INSERT INTO Instructor ( fname, lname, mname, [password], [level], Username, Question, answer)"
cmd.CommandText = sSQL
Else
sSQL = "UPDATE Instructor set fname = @first, lname = @last, mname = @initial, [password] = @pass, [level] = @lvl, Question = @quest, answer = @ans WHERE Username = @user"
cmd.CommandText = sSQL
End If
cmd.Parameters.Add("@first", OleDbType.VarChar).Value = IIf(Len(Trim(Me.txtfname.Text)) > 0, Me.txtfname.Text, DBNull.Value)
cmd.Parameters.Add("@last", OleDbType.VarChar).Value = IIf(Len(Trim(Me.txtlname.Text)) > 0, Me.txtlname.Text, DBNull.Value)
cmd.Parameters.Add("@initial", OleDbType.VarChar).Value = IIf(Len(Trim(Me.txtinitial.Text)) > 0, Me.txtinitial.Text, DBNull.Value)
cmd.Parameters.Add("@pass", OleDbType.VarChar).Value = IIf(Len(Trim(Me.txtpassword.Text)) > 0, Me.txtpassword.Text, DBNull.Value)
cmd.Parameters.Add("@lvl", OleDbType.VarChar).Value = IIf(Len(Trim(Me.lbllevel.Text)) > 0, Me.lbllevel.Text, DBNull.Value)
cmd.Parameters.Add("@quest", OleDbType.VarChar).Value = IIf(Len(Trim(Me.cmbquestion.Text)) > 0, Me.cmbquestion.Text, DBNull.Value)
cmd.Parameters.Add("@ans", OleDbType.VarChar).Value = IIf(Len(Trim(Me.txtanswer.Text)) > 0, Me.txtanswer.Text, DBNull.Value)
cmd.Parameters.Add("@user", OleDbType.VarChar).Value = txtusername.tag
cmd.ExecuteNonQuery()
If Me.txtusername.Tag = 0 Then
cmd.CommandText = "Select @@Identity"
Me.txtusername.Tag = cmd.ExecuteScalar()
End If
MsgBox("Data has been save.")
Catch ex As Exception
MsgBox(ErrorToString)
Finally
conn.Close()
End Try
heres the perfect code but i change the Contact_ID to Username but i got and error i think its in ".tag" by the way. txtusername.tag is not actually 0..it has already value so it will only choose the UPDATE statement.
Dim conn As New OleDbConnection
Dim cmd As New OleDbCommand
Dim sSQL As String = String.Empty
Try
conn = New OleDbConnection(Get_Constring)
conn.Open()
cmd.Connection = conn
cmd.CommandType = CommandType.Text
If Me.txtFirstName.Tag = 0 Then
sSQL = "INSERT INTO tblAddressBook ( last_name, mid_name, birth_date, gender, home_adr, bus_adr, tel_no, mobile_no, email)"
sSQL = sSQL & " VALUES(@last_name, @mid_name, @birth_date, @gender, @home_adr, @bus_adr, @tel_no, @mobile_no, @email)"
cmd.CommandText = sSQL
Else
sSQL = "UPDATE tblAddressBook set last_name = @last_name, mid_name = @mid_name, birth_date = @birth_date, gender = @gender"
sSQL = sSQL & " ,home_adr = @home_adr, bus_adr = @bus_adr, tel_no = @tel_no, mobile_no = @mobile_no, email = @email where contact_id = @id"
cmd.CommandText = sSQL
End If
cmd.Parameters.Add("@last_name", OleDbType.VarChar).Value = IIf(Len(Trim(Me.txtLastName.Text)) > 0, Me.txtLastName.Text, DBNull.Value)
cmd.Parameters.Add("@mid_name", OleDbType.VarChar).Value = IIf(Len(Trim(Me.txtMidName.Text)) > 0, Me.txtMidName.Text, DBNull.Value)
cmd.Parameters.Add("@home_adr", OleDbType.VarChar).Value = IIf(Len(Trim(Me.txtHomeAdr.Text)) > 0, Me.txtHomeAdr.Text, DBNull.Value)
cmd.Parameters.Add("@bus_adr", OleDbType.VarChar).Value = IIf(Len(Trim(Me.txtBusAdr.Text)) > 0, Me.txtBusAdr.Text, DBNull.Value)
cmd.Parameters.Add("@tel_no", OleDbType.VarChar).Value = IIf(Len(Trim(Me.txtTelNo.Text)) > 0, Me.txtTelNo.Text, DBNull.Value)
cmd.Parameters.Add("@mobile_no", OleDbType.VarChar).Value = IIf(Len(Trim(Me.txtMobNo.Text)) > 0, Me.txtMobNo.Text, DBNull.Value)
cmd.Parameters.Add("@email", OleDbType.VarChar).Value = IIf(Len(Trim(Me.txtEmail.Text)) > 0, Me.txtEmail.Text, DBNull.Value)
cmd.Parameters.Add("@id", OleDbType.Numeric).Value = Me.txtFirstName.Tag
cmd.ExecuteNonQuery()
'If the record is new then we have to get its ID so that we can edit it rightaway after the insertion.
If Me.txtFirstName.Tag = 0 Then
cmd.CommandText = "Select @@Identity"
'Set textbox tag property with the ID of new record
Me.txtFirstName.Tag = cmd.ExecuteScalar()
End If
MsgBox("Data has been save.")
Catch ex As Exception
MsgBox(ErrorToString)
Finally
conn.Close()
End Try
Upvotes: 1
Views: 882
Reputation: 43
I missed If Me.txtFirstName.Tag = 0 Then to Me.txtusername.Tag.ToString().Trim() = "0" and now its working :)
Upvotes: 0
Reputation: 34834
You are missing the VALUES
portion of your INSERT
statement, try it like this:
INSERT INTO Instructor (fname, lname, mname, [password], [level], Username, Question, answer)
VALUES (@fname, @last, @initial, @pass, @lvl, @user, @quest, @ans)
You are also not casting the Tag
value properly in your parameter:
cmd.Parameters.Add("@user", OleDbType.VarChar).Value = CType(txtusername.tag, String)
Upvotes: 0