【发布时间】:2016-10-16 23:32:28
【问题描述】:
我一直在尝试在 Visual Studio 中创建一个注册页面,但我似乎无法让它工作。
- 数据库名称 = 用户
- 要插入数据的列 = 用户名和密码
当我执行代码时,它返回消息“数据已保存”,这让我相信它已经工作了,但是当我查看表数据时,什么都没有改变..
Public Class SignUp
Dim mysqlConn As Data.SqlClient.SqlConnection
Dim command As Data.SqlClient.SqlCommand
Private Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
mysqlConn = New Data.SqlClient.SqlConnection
mysqlConn.ConnectionString = ("Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\NewFolder1\Members.mdf;Integrated Security=True")
Dim RowsAffected As Integer
Try
mysqlConn.Open()
Dim query As String = "INSERT INTO [User] (username, password) VALUES (@Username, @Password)"
command = New SqlClient.SqlCommand(query, mysqlConn)
Dim paramUsername As New SqlClient.SqlParameter() With {.ParameterName = "@Username", .Value = TextBox1.Text, .Size = 50, .SqlDbType = SqlDbType.VarChar}
Dim paramPassword As New SqlClient.SqlParameter() With {.ParameterName = "@Password", .Value = TextBox2.Text, .Size = 50, .SqlDbType = SqlDbType.VarChar}
command.Parameters.Add(paramUsername)
command.Parameters.Add(paramPassword)
RowsAffected = command.ExecuteNonQuery
mysqlConn.Close()
If 0 < RowsAffected
Then MessageBox.Show("Data Saved")
Catch ex As Exception
MessageBox.Show(ex.Message)
Finally
mysqlConn.Dispose() 'closes connection
End Try
【问题讨论】:
-
可能是 Why saving changes to a database fails? 的骗子,但您永远不会将密码存储为纯文本
-
这不是一个公开的表格,永远不会,所以我不想散列密码,至少还没有:)
-
如果显示该消息,则保存数据,因为数据库中至少有一行受到影响。你只是在错误的地方或错误的时间寻找数据。 @Plutonix 提供的链接无疑与情况有关。简而言之,您的两个数据库和一个包含您的更改的数据库在您每次构建时都会被覆盖。要么您正在查看不包含您的更改的那个,要么您正在查看一个包含但在它被覆盖之后的那个。
标签: sql-server vb.net