【问题标题】:How can I insert records in different columns from multiple textboxes in a MySQL table?如何在 MySQL 表中的多个文本框的不同列中插入记录?
【发布时间】:2013-05-12 12:29:56
【问题描述】:

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

【问题讨论】:

    标签: mysql vb.net


    【解决方案1】:

    你可以在本地变量中存储名字直到你有姓氏吗? (你好像已经有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

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

    【讨论】:

      【解决方案2】:

      我不会推荐您的方法,或者我可能会建议在将数据提交到 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 不会修改内容

      【讨论】:

        猜你喜欢
        • 2013-01-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-04-02
        • 2016-09-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多