如何将VB.net WinForm中多个文本框中的记录添加到远程MySQL数据库?我想将文本框(fname,lname)中的值插入mySQL表中的相应列。一次只能看到一个文本框。只有在提交上一个文本框时,才会显示下一个文本框。我使用以下代码输入单个记录,但无法将其用于多个列。
Imports MySql.Data.MySqlClient
Public Class Regform
Dim serverstring As String = "server=***;Uid=****;database=****;password=****"
Dim SQLstate As String
Dim firstn As String
Dim SQLconnection As MySqlConnection = New MySqlConnection
Private Sub Regform_Load(sender As Object, e As EventArgs) Handles MyBase.Load
SQLconnection.ConnectionString = serverstring
Try
If SQLconnection.State = ConnectionState.Closed Then
SQLconnection.Open()
MsgBox("Connection Established")
Else
SQLconnection.Close()
MsgBox("Connection is Closed")
End If
Catch ex As Exception
MsgBox(ex.ToString)
End Try
text2.Text = "Well, Hello " & firstn & "Please give me your last name"
End Sub
Public Sub savename(ByRef SQLstatement As String)
Dim cmd As MySqlCommand = New MySqlCommand
With cmd
.CommandText = SQLstatement
.CommandType = CommandType.Text
.Connection = SQLconnection
.ExecuteNonQuery()
End With
SQLconnection.Close()
MsgBox("Added")
SQLconnection.Dispose()
End Sub
Private Sub cmdsubmit_Click(sender As Object, e As EventArgs) Handles cmdsubmit.Click
SQLstate = "INSERT INTO users(fname) VALUES('" & fname.Text & "')"
savename(SQLstate)
text1.Visible = False
text2.Visible = True
fname.Visible = False
' lname.visible = True
End Sub
Private Sub fname_TextChanged(sender As Object, e As EventArgs) Handles fname.TextChanged
firstn = fname.Text
End Sub
End Class
答案 0 :(得分:0)
在您拥有姓氏之前,您可以在本地将名字存储在变量中吗? (您似乎已经Dim firstn As String
)
firstn = fname.Text
然后使用类似的东西:
"INSERT INTO users(fname,lname) VALUES('" & firstn & "','" & lname.Text & "')"
如果不使用这种方法,或者由于这个或其他原因你想要选择退出插入行的ID以便你可以更新它们,那么使用这样的技术:
Return Last ID (IDENTITY) On Insert row VB.NET MySQL
BTW我不会仅根据名字选择退出数据库..它们不是很独特;)
答案 1 :(得分:0)
我不推荐您的方法,或者我建议您在将数据提交到mysql数据库之前将数据从第一个表单传输到第二个表单(假设它们不在同一表单中)
为两个表单创建一个全局声明的变量
Public indform1 As form1
Public indform2 As form2
当您致电表格
时 indform1 = New form1
indform1.Owner = Me
indform1.MdiParent = Me
indform1.Show()
与form2相同 - 这将允许您更轻松地传输数据。
创建form2时,要么创建一个本地声明的字符串
dim fname as new string = indform1.fname.text
并使用变量fname来表示“hello ....”
一旦他们按下第二个表单的提交按钮,它就会运行你的插入语句
INSERT INTO users(fname,lname) VALUES('" & fname & "','" & lname.Text & "')
或者你的另一个选择是在你收到我不推荐的姓氏之后运行更新声明,因为正如另一个响应者声明的那样,第一个名称不是很独特,除非你也添加一个唯一的ID。
否则,如果它将在同一个表格上并且您只处理对象可见性 - 您可以使用
INSERT INTO users(fname,lname) VALUES('" & fname.text & "','" & lname.Text & "')
使对象可见= false不会修改内容