2017-08-18 15 views
0

Webツールを使用してSQLテーブルに日付を入力しています。 それは動作しますが、それはimproventを必要とし、私はVBを頻繁に使用しません。 [![画像の説明はこちら] [1]] [1]VBAチェックボックスを使用して選択したSQLエントリを削除する方法

私が望むのは、ツールが削除ボタンをクリックすると、テーブル内のすべてのSQLエントリ(GridView)がチェックされます?デザインコード

<div class="style1"> 
    &nbsp; 
    <b> Datum:&nbsp;&nbsp;&nbsp;&nbsp; 
    <BDP:BasicDatePicker ID="datum" runat="server" DateFormat="d" /> 
    </b>&nbsp;&nbsp; 
    <b>Bezeichnung: 
    <asp:TextBox ID="txtBezeich" runat="server" Height="18px" Width="180px"></asp:TextBox> 
    </b>&nbsp;&nbsp; 
    <b>Faktor : 
    <asp:TextBox ID="txtfaktor" runat="server" Height="18px" Width="180px"></asp:TextBox> 
    </b>&nbsp;&nbsp; 
    <br /> 
    <b> 
    <asp:Button ID="cmdAdd" runat="server" Height="22px" 
     style="color: #FFFFFF; font-weight: 700; background-color: #006666" Text="Add" 
     Width="62px" /> 
    &nbsp;&nbsp;<asp:Button ID="cmdDelete" runat="server" Height="22px" 
     style="color: #FFFFFF; font-weight: 700; background-color: #006666" 
     Text="Delete" Width="62px" /> 

    &nbsp;&nbsp;<asp:Button ID="cmdUpdate" runat="server" Height="22px" 
     style="color: #FFFFFF; font-weight: 700; background-color: #006666" 
     Text="Update" Width="62px" /> 
    &nbsp; 
    </b> 
    <b><br /> Definitionen für Faktor: 
    <br /> 0: Ganzer Feiertag 
    <br /> 0,5 : halber Feiertag 
    <br /> 0,33 : ein-Drittel Feiertag 
    <br /> usw. 
    <br /></b> 

</div> 
<asp:GridView ID="GridView1" runat="server" AllowPaging="False" 
    AllowSorting="True" AutoGenerateColumns="False" BackColor="#F3F3F3" 
    CaptionAlign="Right" DataSourceID="dsFeiertag" Height="133px" PageSize="25" 
    style="text-align: left; font-family: Calibri; font-size: small; margin-bottom: 0px;" 
    Width="477px" > 
    <Columns> 

    <asp:TemplateField> 
      <ItemTemplate> 
       <asp:CheckBox ID="chk_hid1" runat="server" /> 
      </ItemTemplate> 
     </asp:TemplateField> 

     <asp:BoundField DataField="Datum" HeaderText="Datum" SortExpression="Datum" /> 
     <asp:BoundField DataField="Bezeichnung" HeaderText="Bezeichnung" SortExpression="Bezeichnung" /> 
     <asp:BoundField DataField="Faktor" HeaderText="Faktor" SortExpression="Faktor" /> 

    </Columns> 
    <HeaderStyle BackColor="#2E0A31" Font-Underline="False" ForeColor="White" /> 
</asp:GridView> 
:イムASP/VB.Net

EDITでのMicrosoft Visual Studioを使用:チェックボックス

どのように私はVB.Net

EDITにそのコードにありません

EDIT:関数のコード

Partial Public Class FeiertagsTool 

Inherits System.Web.UI.Page 

Dim adoBIWEB_BIUSERLogin As New ADODB.Recordset 
Dim adoDWH As New ADODB.Connection 

Dim cred As ReportServerCredentials 
Dim Dstr As String 

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
    'If UserName = "" Or Pwd = "" Then 
    ' Server.Transfer("~/Mainpage.aspx", True) 
    ' Exit Sub 
    'End If 
    GetHit(System.Web.HttpContext.Current.Request.Url.AbsolutePath, Request.UserHostAddress) 
    adoDWH.ConnectionString = "DSN=Report_DWH_Stage;User ID=BI_WEB_USER;Password=xs4dwh;" 
    adoDWH.CursorLocation = ADODB.CursorLocationEnum.adUseServer 

End Sub 

Protected Sub cmdUpdate_Click(ByVal sender As Object, ByVal e As EventArgs) Handles cmdUpdate.Click 
    adoDWH.Open() 

    If txtfaktor.Text <> "" Then 

     adoDWH.Execute("update External_Inputs.VOXPARK.Feiertag set Faktor = " & Replace(txtfaktor.Text, ",", ".") & " where Datum = convert(date,'" & datum.Text & "',104)") 
    End If 
    If txtBezeich.Text <> "" Then 
     adoDWH.Execute("update External_Inputs.VOXPARK.Feiertag set Bezeichnung = '" & txtBezeich.Text & "' where Datum = convert(date,'" & datum.Text & "',104)") 
    End If 
    GridView1.DataBind() 
    adoDWH.Close() 
End Sub 

Protected Sub cmdDelete_Click(ByVal sender As Object, ByVal e As EventArgs) Handles cmdDelete.Click 
    adoDWH.Open() 
    adoDWH.Execute("delete from External_Inputs.VOXPARK.Feiertag where Datum = convert(date,'" & datum.Text & "',104)") 
    GridView1.DataBind() 
    adoDWH.Close() 
End Sub 


Protected Sub cmdAdd_Click(ByVal sender As Object, ByVal e As EventArgs) Handles cmdAdd.Click 
    adoDWH.Open() 
    adoDWH.Execute("insert into External_Inputs.VOXPARK.Feiertag ([Datum],[Bezeichnung],[Faktor]) values(convert(date,'" & datum.Text & "',104) , '" & txtBezeich.Text & "' ," & Replace(txtfaktor.Text, ",", ".") & ")") 
    GridView1.DataBind() 
    adoDWH.Close() 
End Sub 

End Class 

[1]:https://i.stack.imgur.com/LnnFg.pngenter code here

+1

なぜWebアプリケーション用にVBAが必要ですか?これまでに試したコードを見せてください。 –

+0

okコードが追加されました –

答えて

1

戻ってこれに取得が遅れて申し訳ありません。昨日は暑かったので、私はプールに向かった。

削除コマンドでは、チェックされている行を見つけるためにGridViewの内容をループする必要があります。行があれば、削除が必要な休日のテキストを簡単に取得できます。チェックボックスはアンバインドされているため、GridView自体をループする必要があります(より一般的な基になるデータではなく)。 GridViewコントロールをループし

、このようなものを使用する:私はメッセージボックスを持っているところ

Protected Sub cmdDelete_Click(sender As Object, e As EventArgs) 
    For Each row As GridViewRow In GridView1.Rows 
     Dim test As CheckBox 
     test = CType(row.Cells(0).Controls(1), CheckBox) 
     If test.Checked = True Then 
      MsgBox(row.Cells(1).Text + " must be deleted") 
     End If 
    Next 
End Sub 

はもちろん、日付マッチングrow.Cellsを削除する代わりに、SQLコマンド文字列を構築する必要があります(1) 。テキスト。残りの部分を自分で修正するには十分なはずです。さらなる助けが必要な場合は、私に連絡してください。

+0

私は多くの助けを借りて、いくつか試してみました。大変ありがとうございます –

+0

助けてくれてうれしいです。質問に答えをマークしてください。@ RobertD.M –

関連する問題