How can I insert checkbox selected projects, only those that are not already in the sql table?
SQL database tables:
CREATE TABLE [dbo].[prosjekter](
[id] [int] IDENTITY(1,1) NOT NULL,
[Prosjektnavn] [nvarchar](50) NULL,
[Prosjektnummer] [bigint] NULL,
[Prosjektbeskrivelse] [nvarchar](max) NULL,
[Prosjektansvarlig_bnavn] [nvarchar](50) NULL,
[Prosjektansvarlig_fnavn] [nvarchar](50) NULL,
[Prosjektansvarlig_enavn] [nvarchar](50) NULL,
[Prosjekt_Esign] [nvarchar](max) NOT NULL,
[Prosjekt_Aktiv_til] [date] NOT NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
CREATE TABLE [dbo].[Prosjektbrukere](
[id] [int] IDENTITY(1,1) NOT NULL,
[Aktiv] [bit] NOT NULL,
[Prosjektnummer] [bigint] NULL,
[PI_bnavn] [nvarchar](50) NULL,
[Registrert_dato] [date] NOT NULL,
[Merknad] [nvarchar](max) NULL,
[PI_Esign] [nvarchar](max) NULL,
[Godkjent] [float] NOT NULL,
[Godkjent_av] [nvarchar](50) NOT NULL,
[Godkjent_dato] [date] NOT NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
Here is my code
<asp:SqlDataSource ID="SqlDataSourceProsjekter" runat="server" ConnectionString="<%$ ConnectionStrings:databasenConnectionStringSQL_Auth %>"
SelectCommand="SELECT * FROM [Prosjekter]"></asp:SqlDataSource>
<table class="table table-xs table-hover zero-configuration">
<thead class="bordered-darkorange">
<tr role="row">
<th>Velg</th>
<th>Navn</th>
<th>Beskrivelse</th>
<th>Ansvarlig</th>
<th>Aktiv til</th>
</tr>
</thead>
<tbody>
<asp:Repeater ID="Repeater_Prosjekt_Ovelse" runat="server" DataSourceID="SqlDataSourceProsjekter" OnItemDataBound="Repeater_Prosjekt_Ovelse_ItemDataBound">
<ItemTemplate>
<tr>
<td>
<label>
<asp:CheckBox ID="ChkBoxProsjekt" runat="server" />
<span class="text"> <asp:Label ID="LblProsjektnummer" runat="server" Text='<%# Bind("Prosjektnummer") %>'></asp:Label></span>
</label>
<br />
</td>
<td><asp:Label ID="lblProsjektnavn" runat="server" Text='<%# Bind("Prosjektnavn") %>'></asp:Label></td>
<td><asp:Label ID="Label20" runat="server" Text='<%# Bind("Prosjektbeskrivelse") %>'></asp:Label></td>
<td>
<asp:Label ID="Label21" runat="server" Text='<%# Bind("Prosjektansvarlig_enavn") %>'></asp:Label>,
<asp:Label ID="Label9" runat="server" Text='<%# Bind("Prosjektansvarlig_fnavn") %>'></asp:Label>
(<asp:Label ID="Label14" runat="server" Text='<%# Bind("Prosjektansvarlig_bnavn") %>'></asp:Label>)
</td>
<td><asp:Label ID="Label22" runat="server" Text='<%# Bind("Prosjekt_Aktiv_til", "{0:yyyy.MM.dd}") %>'></asp:Label></td>
</tr>
</ItemTemplate>
<FooterTemplate> .
</FooterTemplate>
</asp:Repeater>
</tbody>
</table>
<asp:Button ID="Btn_Godkjenn" runat="server" Text="Godkjenn" class="btn btn-sm btn-block btn-palegreen" OnClick="Btn_Godkjenn_Click" />
Protected Sub Repeater_Prosjekt_Ovelse_ItemDataBound(sender As Object, e As RepeaterItemEventArgs)
Dim PI_bnavn = Request.QueryString("PI_bnavn")
Dim Rpt = TryCast(FormView1.FindControl("Repeater_Prosjekt_Ovelse"), Repeater)
Using con As New SqlConnection(config)
Using cmd As New SqlCommand("SELECT Prosjektnummer, PI_bnavn FROM Prosjektbrukere where PI_bnavn = '" & PI_bnavn & "';", con)
Using sda As SqlDataAdapter = New SqlDataAdapter(cmd)
Dim dt1 As DataTable = New DataTable()
sda.Fill(dt1)
Dim dr As DataRow() = dt1.[Select]("PI_bnavn='" & PI_bnavn & "'")
For Each item As RepeaterItem In Rpt.Items
If IsDBNull("") Then
Else
Dim pNo As Label = TryCast(item.FindControl("LblProsjektnummer"), Label)
Dim isLogin As CheckBox = TryCast(item.FindControl("ChkBoxProsjekt"), CheckBox)
Dim result As List(Of DataRow) = dr.AsEnumerable().Where(Function(x) x("Prosjektnummer").ToString() = pNo.Text).ToList()
isLogin.Checked = result.Count > 0
End If
Next
End Using
End Using
End Using
End Sub
Protected Sub Btn_Godkjenn_Click(sender As Object, e As EventArgs)
Dim Rpt = TryCast(FormView1.FindControl("Repeater_Prosjekt_Ovelse"), Repeater)
For Each item As RepeaterItem In Rpt.Items
Dim Prosjektnummer As String = TryCast(item.FindControl("LblProsjektnummer"), Label).Text
If (TryCast(item.FindControl("ChkBoxProsjekt"), CheckBox)).Checked Then
Dim constr As String = ConfigurationManager.ConnectionStrings("databasenConnectionStringSQL_Auth").ConnectionString
Using con As New SqlConnection(constr)
Using cmd2 As New SqlCommand()
cmd2.CommandText = "INSERT INTO Prosjektbrukere(Prosjektnummer, PI_bnavn, PI_Esign) VALUES('" + Prosjektnummer + "','" + PI_bnavn + "','" + PI_Esign + "')"
cmd2.Connection = con
cmd2.Parameters.Clear()
con.Open()
cmd2.Parameters.AddWithValue("Prosjektnummer", Prosjektnummer)
cmd2.Parameters.AddWithValue("PI_bnavn", PI_bnavn)
cmd2.Parameters.AddWithValue("PI_Esign", PI_Esign)
cmd2.ExecuteNonQuery()
con.Close()
End Using
End Using
End If
Next
End Sub