如何在MySQL表中的多个文本框中的不同列中插入记录?

时间:2013-05-12 12:29:57

标签: mysql vb.net

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

2 个答案:

答案 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不会修改内容