2016-04-03 4 views
-1

databaseにレコードを挿入する場合は、groupboxを2つ追加します。 groupbox1グループボックスでチェックするラジオボタンを取得してデータベースに挿入する方法

  1. 男性をチェックする必要が四つの可能な入力があるでしょう。この場合、およびgroupbox2(新学生や古い学生radio buttonsを持っている)

    enter image description here

    (オスとメスのradio buttonsを持っている)と、古い学生

  2. 2男の子、新生児
  3. 女子高生
  4. 女性と新入生

は、通常、私はちょうどこの

If rbtMale.Checked And rbtOld.Checked Then 
      Dim OldStudent = rbtOld.Text.ToString 
      Dim Male = rbtMale.Text.ToString 
      Using cmd As New SqlClient.SqlCommand("dbo.uspInsert", cn) 
       cmd.CommandType = CommandType.StoredProcedure 
       cmd.Parameters.Add(New SqlParameter("@StudPic", SqlDbType.Image)) 
       If (Not String.IsNullOrEmpty(Me.Name) AndAlso System.IO.File.Exists(a.FileName)) Then 
        cmd.Parameters("@StudPic").Value = System.IO.File.ReadAllBytes(a.FileName) 
        cmd.Parameters.Add("@SurName", SqlDbType.VarChar, 100).Value = txtStudLN.Text 
        cmd.Parameters.Add("@FirstName", SqlDbType.VarChar, 100).Value = txtStudFN.Text 
        cmd.Parameters.Add("@Gender", SqlDbType.VarChar, 100).Value = Male 
        cmd.Parameters.Add("@Status", SqlDbType.VarChar, 100).Value = OldStudent 
        cmd.ExecuteNonQuery() 
        MsgBox("Save Record New record Successfully") 
       End If 
      End Using 
     End If 

のような個別のラジオボタンをチェックします。しかし、私はgroupboxにチェックされているradio buttonチェックして、それを挿入するスマートな方法があると思いますa database。下にいくつかのコードは私にこれを考えているが、問題は私がgroupboxの値を渡す方法を知らないし、私のDBにこれを挿入することです。どんな助けも非常に高く評価されるでしょう。ありがとうございます

For Each Ctrl In GroupBox1.Controls 
    If Ctrl.checked Then MsgBox(Ctrl.name) 
Next 
+0

「私はそこにスマートな方法があると思う」コンボボックスは1つのコントロールで複数の状態を示すことができるので、複数のRBをポーリングする必要はありません。彼らはあまりにも部屋を取る。 – Plutonix

+0

@Plutonixはい、あなたの権利。しかし、ラジオボタンですべてのフォームをセットアップしているので、私のコードで助けてくれますか? –

+0

「4つの可能性があります」いいえ、2つあります。 SQLには性別とステータスフィールドが表示されるため、2つの入力があります。 RBを使用することを選択したので、ジェンダーのような1つの入力/フィールドは2つのコントロールで表されます。 – Plutonix

答えて

1

あなたの質問の一番下にスニペットがあります。この機能は、あなたは、すべてのコードパスで結果を返さない関数についてコンパイラの警告を取得しますが、これはラジオボタンとは関係ないはず

Private Function GetGroupBoxCheckedButton(grpb As GroupBox) as RadioButton 
    For Each ctrl As RadioButton In grpb.Controls 
     If ctrl.Checked Then Return ctrl 
    Next 
End Function 

をチェックされていることをパラメータとしてグループボックスを取り、ラジオボタンを返します - あなたがグループボックスに複数のラジオボタンを持っていると仮定すると - 理論的には。

代わりにこれを使用することもできます。それは文句を言わないコンパイラの警告を生成するが、あまり読みやすい: -

Private Function GetGroupBoxCheckedButton(grpb As GroupBox) As RadioButton 
    Dim rButton As RadioButton = grpb.Controls.OfType(Of RadioButton).Where(Function(r) r.Checked = True).FirstOrDefault() 
    Return rButton 
End Function 

テキスト値はちょうど私はあなたがここで何をしたいすべてが追加することであると推測している

Dim value As String = GetGroupBoxCheckedButton(GroupBox1).Text 

のようなものを使用取得するには上記のコードを複数回書くのではなく、RadioButtonのテキストをデータベースに書き込んでください。あなたがする必要がありますすべてがIfEnd If文を削除し、読むためにあなたのコードの最初のビットをammend ..です

 Dim Status As String= GetGroupBoxCheckedButton(GroupBox1).Text 
     Dim Gender As String= GetGroupBoxCheckedButton(GroupBox2).Text 

ところで、あなたは.Textプロパティとしてこれらの行の末尾に.ToStringを必要としません。文字列を返します。文字列に変換する必要はありません。

最後に、変数をコードに合わせてさらに一致させます。

 cmd.Parameters.Add("@Gender", SqlDbType.VarChar, 100).Value = Gender 
     cmd.Parameters.Add("@Status", SqlDbType.VarChar, 100).Value = Status 
+0

コメントありがとうございます。私のコードでそれをどのように適用できますか?チェックされているラジオボタンの値を渡して自分のデータベースに挿入する方法は? –

+0

ラジオボタン名またはテキスト値の名前? –

+0

テキスト値が必要な場合は、私の更新された回答を参照してください。その場合、必要に応じて変数をデータベースに渡すことができます。 –

関連する問題