【问题标题】:Inserting data into SQL Server database using VB.Net使用 VB.Net 将数据插入 SQL Server 数据库
【发布时间】:2012-01-31 07:56:26
【问题描述】:

我目前正在使用 HDI Membership 提供程序,设计如下所示:

现在我正在尝试创建一个新用户并将这些值插入到数据库中,如下所示:

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

现在的问题是数据没有插入到数据库中。我想知道是否有人能指出我哪里出错了?

【问题讨论】:

  • 您正在吞下任何异常 - 您需要记录异常或至少在提供任何帮助之前找出它是什么。不要在没有至少找出异常的情况下执行Catch
  • @Oded-我遇到了这个异常:列名或提供的值的数量与表定义不匹配。

标签: sql-server vb.net winforms registration


【解决方案1】:

您的插入语句不正确 - 因为您没有指定任何字段名称,您应该为 all 列提供值。

解决方法是提供要插入的列的名称。

屏幕截图还显示有一个必需的 ApplicationName 列,因此除非它定义了 DEFAULT,否则您也需要提供它。

假设您在ApplicationName 上定义了DEFAULT

cmd.CommandText = "INSERT INTO Users ( Username, Password, Email, PasswordQuestion, PasswordAnswer) VALUES(@Username,@Password,@Email,@PasswordQuestion,@PasswordAnswer)"

【讨论】:

  • @Oded-现在我有一个问题,你只能解决这个问题,所以现在我如何提及应用程序路径在 web.config 中我们有一个会员标签,其中我们提到应用程序名称但在app.config 我该如何提及?正如我现在在这个问题中所问的那样 stackoverflow.com/questions/8692694/… 你请帮我解决这个问题。
  • @Kiran - 首先,我不是唯一可以帮助你的人。看起来你已经得到了答案。
猜你喜欢
  • 2019-11-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多