У меня возникли проблемы с моим кодированием
Привет, я новичок в этом деле VB.net, я пытаюсь вставить свои данные в базу данных, но, похоже, продолжаю получать ошибки. Что я сделал не так?
Imports System.Data.OleDb Public Class frmRegister Dim provider As String Dim datafile As String Dim connString As String Dim myConnection As OleDbConnection = New OleDbConnection Dim gender As String Dim age As Int32 Private Sub BtnReg_Click(sender As Object, e As EventArgs) Handles btnReg.Click If txtFName.Text = "" Or txtUsername.Text = "" Or txtPassword.Text = "" Or txtEmail.Text = "" Then MsgBox("Please fill in the info") Else If radFemale.Checked Then gender = "Female" ElseIf radMale.Checked Then gender = "Male" End If age = DateTime.Today.Year - dateAge.Value.Year provider = "Provider=Microsoft.JET.OLEDB.4.0;Data Source=" datafile = "C:\Users\User\Desktop\Part 5\CSC 301\Project\Flight\test.mdb" connString = provider & datafile myConnection.ConnectionString = connString myConnection.Open() Dim str As String str = "Insert into User ([Username],[Password],[Full Name],[Email],[Gender],[Birthdate],[Age]) Values (?,?,?,?,?,?,?) " Dim cmd As OleDbCommand = New OleDbCommand(str, myConnection) cmd.Parameters.Add(New OleDbParameter("Username", CType(txtUsername.Text, String))) cmd.Parameters.Add(New OleDbParameter("Password", CType(txtPassword.Text, String))) cmd.Parameters.Add(New OleDbParameter("Full Name", CType(txtFName.Text, String))) cmd.Parameters.Add(New OleDbParameter("Email", CType(txtEmail.Text, String))) cmd.Parameters.Add(New OleDbParameter("Gender", CType(gender, String))) cmd.Parameters.Add(New OleDbParameter("Birthdate", CType(dateAge.Value, String))) cmd.Parameters.Add(New OleDbParameter("Age", CType(age, String))) Try cmd.ExecuteNonQuery() cmd.Dispose() myConnection.Close() txtEmail.Clear() txtFName.Clear() txtPassword.Clear() txtUsername.Clear() MsgBox("create success") Catch ex As Exception MsgBox("Error") End Try End If End Sub End Class
Что я уже пробовал:
Я изменил свой код с более простого способа подключения его к базе данных на эти, но все еще получаю ошибку
Richard Deeming
Если вы хотите, чтобы мы помогли вам исправить ошибку, вы должны сказать нам, что это за ошибка.
Нажмите на зеленую ссылку "улучшить вопрос" и обновите свой вопрос, чтобы добавить полную информацию об ошибке, которую вы получаете. Не забудьте указать, из какой строки кода он выбрасывается.
NB: Вам, вероятно, придется изменить свой Catch
блок, который в данный момент игнорирует исключение и просто отображает общее сообщение "Ошибка". Попросите его отобразить сведения об исключении или записать сведения об исключении в журнал.
Wafiqque
Спасибо, после того, как я изменил свой блок Catch, это ошибка, которую я получаю
Синтаксическая ошибка в инструкции INSERT INTO.
около
Система.Данные.Oledb для.Объект oledbcommand.ExecuteCommandTextErrorHandling(OleDbHResult hr)
около
Система.Данные.Oledb для.Объект oledbcommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult)
около
Система.Данные.Oledb для.Объект oledbcommand.ExecuteCommandText(Object&executeResult)
около
Система.Данные.Oledb для.Объект oledbcommand.Метод executecommand(поведение метода commandbehavior,объект&амп; executeResult)
около
Система.Данные.Oledb для.Объект oledbcommand.Исполнить команду.ExecuteReaderInternal(поведение CommandBehavior, строковый метод)
около
Система.Данные.Oledb для.Объект oledbcommand.Метод executenonquery()
около
Полета.frmRegister.BtnReg_Click(объект отправителя, EventArgs В Е) в C:\Users\User\Desktop\Part 5\КБК 301\проект\полет\полет\зарегистрироваться.В. Б.:линия 42
Richard Deeming
Кроме того, вы храните пароли в виде обычного текста. Не делай этого.
Безопасная Аутентификация Паролем Объясняется Просто[^]
Соленое хэширование паролей - делаем это правильно[^]
MadMyche
Было бы полезно, если бы вы указали фактическую ошибку....
Есть недостаток по вашей логике, для расчета возраста; но недостаточно, чтобы оправдать исключение само по себе.
Richard Deeming
Я бы сказал, что есть недостаток в хранении возраста в базе данных вообще, учитывая, что это не статическое значение. :)
MadMyche
Может быть, намерение таково возраст на момент регистрации