1

テキストボックスにフィールドを追加するボタンを作成し、サブのパラメータとしてテキストボックス名を渡したいと思いました。これにより、データベースに挿入されます。どうすればよいですか。plsは、以下のvbで参照するコードを見つけます。 。ネット

データベースに値を挿入するためのコード

Sub Add_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click

        Dim addedButton As Button = sender
        Dim sqlcmd As SqlCommand
        Dim insertdata As String

        addedButton.Text = "Added"
        adduser = True
        addedButton.Enabled = True

        If (cname.Value = " " Or cid.Value = " " Or cadd.Value = " " Or cph.Value = " " Or fax.Value = " " Or cmail.Value = " ") Then
            Message.InnerHtml = "ERROR: Null values not allowed for " _
                & "Client ID, Name"
            Message.Style("color") = "red"
            BindGrid()
        Else
            Message.InnerHtml = "<b>Client Record has been added</b><br/>"     
        End If

        insertdata = "INSERT INTO dbo.ClientInfo([Client Name],[Client ID],[Client Address],[Client Telephone No],[Client Fax No],[Client E-mail]) values("
        insertdata = insertdata + " ' " + cname.Value + " '," + cid.Value + ",' " + cadd.Value + " '," + cph.Value + "," + fax.Value + "," + cmail.Value
        sqlcmd = New SqlCommand(insertdata, sqlcon)



        Try
            sqlcmd.Connection.Open()
            Dim addcount As Integer = sqlcmd.ExecuteNonQuery()

            If addcount > 0 Then
                Message.InnerHtml = "Record successfully Added"
            Else
                Message.InnerHtml = "Record not added"
            End If

        Catch ex As SqlException

            If ex.Number = 2627 Then
                Message.InnerHtml = "ERROR: A record already exists with " _
                   & "the same primary key"
            End If
        Finally
            sqlcmd.Connection.Close()
            BindGrid()
        End Try      
    End Sub


    <asp:Button id="Button1"
                   Text="Add data"
                   OnClick="Add_Click"
                   runat="server"/><br />

  Name:<input type ="text" id="cname" name="" value="" runat="server"/><br />
              ID: <input type = "text" id="cid" name="txtclientid" value="" runat="server"/><br />
              Address:<input type="text" id="cadd" name="txtclientadd" value="" runat="server"/><br />
              Phone No:<input type="text" id="cph" name="txtno" value="" runat="server" /><br />
              Fax No:<input type="text" id="fax" name="faxno" value="" runat="server"/><br />
              E-mail:<input type="text" id="cmail" name="mail" value="" runat="server"/><br />
              <input type="reset" name="reset" value="Clear" /><br />
4

2 に答える 2

0

TEXTBOX名を任意のサブに渡すには、次のようにします。

Sub SomeSubName(ThisTextboxName as string)
  'your code here
End Sub

または関数に

Function SomeFunctionName(ThisTextBoxName as String) As Boolean
  'your code here
End Function

ここで...SomeSubNameとSomeFunctionNameは、サブまたは関数の名前です。ThisTextBoxNameは、実際のテキストボックス名であるSTRINGデータの変数名です。

したがって、テキストボックスの名前がtxtPhoneの場合は、次のように渡します。

SomeSubName(txtPhone.Name)

また

ブール値としての薄暗いテスト

テスト=SomeFunctionName(txtPhone.Name)

于 2013-01-31T00:29:06.213 に答える
0

正確にはあなたが求めていたものではありませんが、あなたがすべきことに近いです:

Public Sub InsertClientInfo(ByVal ClientName As String, ByVal ClientID As Integer, ByVal ClientAddress As String, ByVal ClientPhone As String, ByVal ClientFax As String, ByVal ClientEmail As String)

    Dim sql As String = _
      "INSERT INTO ClientInfo (" & _
          "[Client Name],[Client ID],[Client Address],[Client Telephone No],[Client Fax No],[Client E-mail]" & _
     ") VALUES (" & _
          "@ClientName,  @ClientID,  @ClientAddress,   @ClientPhone,         @ClientFax,     @ClientEmail)"

    Using cn As New SqlConnection("connection string"), _
          cmd As New SqlCommand(sql, cn)

        'I had to guess at the column types and lengths here. Adjust accordingly
        cmd.Parameters.Add("@ClientName", SqlDbType.NVarChar, 50).Value = ClientName
        cmd.Parameters.Add("@ClientID", SqlDbType.Int).Value = ClientID
        cmd.Parameters.Add("@ClientAddress", SqlDbType.NVarChar, 200).Value = ClientAddress
        cmd.Parameters.Add("@ClientPhone", SqlDbType.NVarChar, 16).Value = ClientPhone
        cmd.Parameters.Add("@ClientFax", SqlDbType.NVarChar, 16).Value = ClientFax
        cmd.Parameters.Add("@ClientEmail", SqlDbType.NVarChar, 50).Value = ClientEmail

        cn.Open()
        cmd.ExecuteNonQuery()
    End Using
End Sub

データ型とサイズを推測する必要があることに注意してください。実際のテーブル定義を作成するには、これを修正する必要があります。このように呼んでください:

InsertClientInfo(textname.Text, Convert.ToInt32(textclientid.Text), txtclientadd.Text, txtno.Text, faxno.Text, mail.Text)
于 2013-01-31T00:44:34.310 に答える