2016-06-21 6 views
1

で挿入クエリの選択したパラメータに選択されたプロパティを使用するにはどうすればよい、Visual Studioで(のSQLServerのためのテーブルに注文の情報を挿入するためにボックスとボタンをドロップダウン - すべてテーブルは注文テーブル以外のレコードを持っています) - 私はどのようにテーブルを更新するために3つを組み込むかわかりません。ログインしたユーザーが選択したアイテムをクリックすると、薬局が選択され、確認ボタンがクリックされ、これが更新されます。私は、グリッドを使用していますドロップダウンリスト

グリッド:グリッドの

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" OnRowCommand="GridView1_RowCommand" > 
<Columns> 
    <asp:TemplateField> 
     <ItemTemplate> 
      <asp:LinkButton runat="server" Text="Select" CommandName="UpdateMedicine" CommandArgument='<%# Eval("MedicineId") %>' /> 
     </ItemTemplate> 
    </asp:TemplateField> 
    <asp:BoundField DataField="Name" HeaderText="Name" /> 
    <asp:BoundField DataField="Purpose" HeaderText="Purpose" /> 
    <asp:BoundField DataField="Instrcutions" HeaderText="Instructions" /> 
</Columns> 
</asp:GridView> 

コード:

Protected Sub GridView1_RowCommand(sender As Object, e As GridViewCommandEventArgs) 
    If e.CommandName = "UpdateMedicine" Then 


     Dim MedicineID As Integer = Integer.Parse(e.CommandArgument.ToString()) 

    End If 

End Sub 

ドロップダウン - ボタンのボタン.click

<asp:DropDownList ID="DropPharm" runat="server" DataSourceID="SqlPharm" DataTextField="Pharmname" DataValueField="Pharmname"></asp:DropDownList> 

    <br /> 
    <br /> 


    <asp:Button ID="btnconfirm" runat="server" Text="Confirm" /> 

コード:

Protected Sub btnconfirm_Click(sender As Object, e As EventArgs) Handles btnconfirm.Click 

    Dim strPatientId As Integer = Session("PatientId").ToString 
    Dim strMedicineId As Integer 
    Dim strDoctorId As Integer 
    Dim strPharmacyId As Integer 
    Dim strDateOrdered As Date 



    Dim query As String = String.Empty 
    query &= "INSERT INTO Order_pres (PatientId, MedicineId, PharmacyId, " 
    query &= "      DoctorId, [Date Ordered]) " 
    query &= "VALUES (@PatientId,@MedicineId, @PharmacyId, @DoctorId, @DateOrdered)" 

    Using conn As New SqlConnection("SurgeryConnectionString"), _ 
      comm As New SqlCommand(query, conn) 
     With comm.Parameters 

      .Add("@PatientId", SqlDbType.Int).Value = CInt(strPatientId) 
      .Add("@MedicineId", SqlDbType.Int).Value = CInt(strMedicineId) 
      .Add("@PharmacyId", SqlDbType.Int).Value = CInt(strPharmacyId) 
      .Add("@DoctorId", SqlDbType.Int).Value = CInt(strDoctorId) 
      .Add("@DateOrdered", SqlDbType.DateTime).Value = DateTime.Parse(strDateOrdered) 
     End With 

     Try 
      conn.Open() 
      comm.ExecuteNonQuery() 
      lblconfirm.Text() = "Order Placed" 
     Catch ex As SqlException 
      lblnoconfirm.Text() = "Order not placed" 
     End Try 
    End Using 

End Sub 

私はいずれかが私にいくつかの方向かの例を与えることができれば、私はそれを非常に感謝し、非常にいくつかの時間のために、この上で立ち往生されています:) - 私は、これはあなたが希望しているものであると思いますあなた

+0

。あなたは、ユーザーがデータグリッドビューとドロップダウンリストで選択したものから値を取得する方法を知る必要がありますか? –

+0

@lamelemonこんにちは、申し訳ありませんが、私はひどくこれを言葉で表現しているが、どのように私はボタンがクリックされたときにダウンこれらの値を挿入するために、グリッド・アンド・ドロップでの薬局の選択に選択を使用するには、yes? – laurajs

答えて

1

に感謝します。

DropDownListの使用から値またはテキストを取得するには、次の使用選択した行のセル値を取得するには

someVariable = DropPharm.SelectedItem.Text 
someVariable = DropPharm.SelectedItem.Value 

someVariable = GridView1.Rows(GridView1.SelectedIndex).Cells(yourColumnIndex).Value 

はbtnconfirm_Clickサブであなたの変数を設定するために使用します。

MedicineIDをクラスレベルの変数にすると、クラス内のすべてのサブクラスの外側に宣言されるので、別のサブの値にアクセスすることができます。次に、あなたのBTNクリックサブで:

Dim strMedicineId As Integer = MedicineID 

そして、それはすでにのようなもので、データベースに存在する場合は、あなたがそれを更新することができますので、あなたのクエリでIF EXISTSの操作を行います。私はあなたの言葉遣いで混乱している

IF EXISTS (SELECT * FROM Order_pres WHERE [email protected] AND [email protected] AND [email protected] AND.....) 
    UPDATE Order_press SET (…) WHERE [email protected] AND.... 
ELSE 
    INSERT INTO Order_pres (…) VALUES (..) 
+0

こんにちは@ラメレモン!この回答に時間をとってくれてありがとうございます - これは私のグリッド行コマンド用です - 'Protected Sub GridView1_RowCommand(GridViewCommandEventArgsとして送信者) e.CommandName =" UpdateMedicine "の場合 Dim MedicineID As Integer = Integer.Parse(e.CommandArgument.ToString()) End If' - これは間違っていますか? – laurajs

+1

@ laurajsそれは100%ではありません。あなたはそれが何を返すかを見るためにデバッグを試みることができますか? –

+0

薬品IDの値を返します。ユーザーがグリッドが自分の薬を表示するセッションの下でログインしたときにグリッドが表示と電子を行います(データベースTHERにでき、患者と薬ですが、私は患者と医療IDを保持するリンクテーブルをも作成している)を参照してください。コマンドはどの薬が選択されたかを認識します – laurajs

関連する問題