Вставка данных в базу данных SQL Server с использованием VB.Net - PullRequest
0 голосов
/ 01 января 2012

В настоящее время я использую поставщика членства HDI, и его дизайн выглядит следующим образом:

enter image description here

Теперь я пытаюсь создать нового пользователя и вставить эти значения в базу данных какпоказано ниже:

Try
   Dim connectionString As String = "Data Source=.\sqlexpress;Initial Catalog=HDIMembershipProvider;Integrated Security=True"
   Using cn As New SqlConnection(connectionString)
      cn.Open()
      Dim cmd As New SqlCommand()
      cmd.CommandText = "INSERT INTO Users VALUES(@Username,@Password,@Email,@PasswordQuestion,@PasswordAnswer)"

      Dim param1 As New SqlParameter()
      param1.ParameterName = "@Username"
      param1.Value = txtUsername.Text.Trim()
      cmd.Parameters.Add(param1)

      Dim param2 As New SqlParameter()
      param2.ParameterName = "@Password"
      param2.Value = txtPassword.Text.Trim()
      cmd.Parameters.Add(param2)

      Dim param3 As New SqlParameter()
      param3.ParameterName = "@Email"
      param3.Value = txtEmail.Text.Trim()
      cmd.Parameters.Add(param3)

      Dim param4 As New SqlParameter()
      param4.ParameterName = "@PasswordQuestion"
      param4.Value = txtSecurityQuestion.Text.Trim()
      cmd.Parameters.Add(param4)

      Dim param5 As New SqlParameter()
      param5.ParameterName = "@PasswordAnswer"
      param5.Value = txtSecurityAnswer.Text.Trim()
      cmd.Parameters.Add(param5)

      cmd.Connection = cn
      cmd.ExecuteNonQuery()
      cn.Close()
   End Using
   Successlbl.show
   Successlbl.show.Text = "Regisration Success."
Catch
   Errolbl.Show()
   Errolbl.Text = "Your account was not created.Please try again."
End Try

Теперь проблема в том, что данные не вставляются в базу данных.Я хотел бы знать, если кто-нибудь может указать мне, где я иду не так?

1 Ответ

2 голосов
/ 01 января 2012

Ваш оператор вставки неверен - поскольку вы не указываете никаких имен полей, вы должны указывать значения для всех столбцов.

Исправление заключается в предоставлении имен столбцов, которые вы используете.вставить в.

На снимке экрана также показано, что существует обязательный столбец ApplicationName, поэтому, если для него не определено DEFAULT, вам также потребуется указать его.

Предполагая, что выиметь DEFAULT, определенный для ApplicationName:

cmd.CommandText = "INSERT INTO Users ( Username, Password, Email, PasswordQuestion, PasswordAnswer) VALUES(@Username,@Password,@Email,@PasswordQuestion,@PasswordAnswer)"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...