我是 Visual Basic for Applications 的新手。我当前的程序中有一个登录系统。通过阅读以下内容,您将了解该系统。我有一个 Access 数据库,其表如下所示:-
Name : Cookies
----------------------------
ID | Nme | Val |
----------------------------
表格被清除,表格中的所有内容都在表格关闭时被删除。现在,当用户登录时,会添加一行:-
----------------------------
(id) | "user" | username |
----------------------------
现在,用户以 index.vb 的形式输入他的 id 和密码,并且在 access 数据库中添加行的命令也在 index.vb 文件中。添加行后,index.vb 文件被隐藏并显示文件 userpage.vb。现在,我已经看到,当用户登录时,该行已正确添加到访问文件中(通过手动刷新访问文件),并且当窗口关闭时,表中的所有内容都被正确删除。因此,插入和删除行没有问题。所以,很明显,问题出在显示部分。我显示用户名的代码如下(代码在 userpage.vb 文件中):-
Dim Username As String = ""
Dim Conn As New OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Software\db.accdb")
Conn.Open()
Dim Cmd As New OleDb.OleDbCommand("Select Val From Cookies Where Nme='user'", Conn)
Dim Reader = Cmd.ExecuteReader
Do While Reader.Read
Username = Reader.Item("Val")
Loop
Label1.Text = "Welcome " & Username
Conn.Close()
给出的输出是“欢迎”,用户名是“”,即使添加了行。现在,我通过实验也看到了这一点,当我在 access 数据库中手动添加一行时,该行的详细信息与将有问题地添加到数据库中的详细信息相同,程序运行良好。当然,任何帮助将不胜感激,并感谢您阅读这篇长文。
更新 1(由@Dimple 建议)我的插入代码如下(此代码在 index.vb 页面中):-
Dim usernameinput As String = TextBox1.Text
Dim Cmmd As New OleDb.OleDbCommand()
Cmmd.Connection = Conn
Cmmd.CommandText = "INSERT INTO Cookies (Nme, Val) Values('user','" & usernameinput & "')"
Cmmd.ExecuteNonQuery()
Dim Userpage As New User_page
Me.Hide()
Userpage.Show()