1

如何将 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
4

2 回答 2

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 说“你好....”

一旦他们按下您的第二个表单的提交按钮,它就会运行您的插入语句

INSERT INTO users(fname,lname) VALUES('" & fname & "','" & lname.Text & "')

或者您的另一个选择是在收到我不推荐的姓氏后运行更新语句,因为正如其他响应者所说,除非您也向其添加唯一的 ID,否则名字不是很独特。

否则,如果它将在同一表格上并且您只处理对象可见性 - 您可以使用

INSERT INTO users(fname,lname) VALUES('" & fname.text & "','" & lname.Text & "')

使对象可见 = false 不会修改内容

于 2014-01-18T04:00:03.453 回答
0

您可以将名字存储在本地变量中,直到您有姓氏?(你似乎已经有了Dim firstn As String

firstn = fname.Text

然后使用类似的东西:

"INSERT INTO users(fname,lname) VALUES('" & firstn & "','" & lname.Text & "')"

如果不使用这种方法,或者您出于此或其他原因想要选择退出插入行的 ID,以便您可以更新它们,则使用如下技术:

返回最后一个 ID (IDENTITY) 在插入行 VB.NET MySQL

顺便说一句,我不会仅根据名字从数据库中选择退出……它们不是很独特;)

于 2013-05-12T12:35:46.010 回答