2010-01-28 5 views
1

50 개의 미국 상태에 대해 50 개의 확인란이 있습니다. 사용자는 50 개 또는 1 개 (기본적으로 원하는 모든 번호)를 선택할 수 있습니다. 선택에 따라 SQL Server 2008에서 테이블을 삽입하거나 업데이트하려고합니다. 예 :하나 또는 여러 개의 확인란 값을 vb.net에서 반복적으로 저장하는 방법

색상 = 청색 및 chk1 = 확인, chk2 = 확인 및 chk3 = 확인 (chk = 확인란). 이제 사용자는 10 개의 상태를 추가로 광고하거나이 3 개를 제거하고 5 개를 더 추가하려고합니다. 그래서 기본적으로 아이디어를 얻습니다. 데이터베이스의 테이블은 다음과 같습니다 - ID Color State_id states라는 테이블이 있으므로 stateid가 거기에서옵니다. 그래서 어떻게합니까 루프 삽입 또는 vb.net에서 업데이트합니까? 나는 비트 작동 및 DB에서 (플래그에 대한 열거와 혼합) .NET에서 변수

하나 개의 필드를 사용합니다

+0

이 Windows Forms, ASP.NET 또는 다른 것입니까? –

+0

asP.net with VB.net 코드 – reger

+0

업데이트 내 대답 – Fredou

답변

-1

방법으로 쉽게 사용자가 선택한 항목으로 재생하려면

작은 샘플

Enum state As Long '64 enum maxium since long = 64 bits 

ALABAMA = 1 
ALASKA = 2 
NEVADA = 4 
ARIZONA = 8 
ARKANSAS = 16 
CALIFORNIA = 32 
COLORADO = 64 
CONNECTICUT = 128 
DELAWARE = 256 
'etc etc etc 

End Enum 

Module Module1 

Sub Main() 
    Dim userselect As state = 0 

    Console.WriteLine("your checked box state") 
    Console.WriteLine("in this case im using the order of the enum for selecting") 
    Dim checkbox = New Boolean() {True, False, False, True, False, False, True, False, False} 

    For i = 0 To checkbox.Length - 1 
     userselect = CType(userselect + If(checkbox(i), (2^(i + 1)), 0), state) 
    Next 

    For Each s As state In [Enum].GetValues(GetType(state)) 
     If (userselect And s) > 0 Then 
      Console.WriteLine("selected " & s.ToString) 
     End If 
    Next 

    Console.WriteLine("Value of userselect is " & userselect.ToString) 

    Console.ReadKey() 

End Sub 

End Module 

OUTPUT: 

selected NEVADA 
selected ARIZONA 
selected COLORADO 
Value of userselect is 76 
+0

u를 더 설명하거나 예제로 읽을 수있는 링크를 제공 할 수 있습니까? – reger

+0

몇 분 안에 작은 예제를 만들 수 있습니다. – Fredou

0

나는 데이터 소스와 checkboxlist을 사용합니다. 이미 데이터 테이블에 주를 보유하고 있으며, SqlDataSource (또는 사용자가 선택한 데이터 테이블)의 데이터 바인딩 된 선택 항목으로 확인란 목록을 채 웁니다. 당신이 버튼을 클릭하면 다음 바로 다음 루프를 통해 반복 :

당신이 삽입 작업을 수행하거나 원자 삽입 작업을 수행 할 수의 SqlDataSource를 사용할 수 중 문제의 행 가득 데이터 테이블을했으면
Dim dt as New myTypedDataTable ' constructed from datasource 

Dim color as String = "Blue" ' Filled however you set color 

For Each item As ListItem In Me.CheckBoxList1.Items 
    If item.Selected Then 
     Dim row as myTypedDataTableRow = dt.NewmyTypedDataTableRow 
     row.Color = color 
     row.State_id = item.Value 
     dt.Rows.Add(row) 
    End If 
Next 

. 이를 수행하는 데는 여러 가지 방법이 있지만 설명 된 데이터 구조가 주어진 항목을 반복하는 가장 간단한 방법 일 것입니다.

0

이 컨텍스트에서 나는 언젠가 쉬운 방법으로 가서 데이터베이스의 모든 사용자 항목 저장소를 삭제 한 다음 삽입 만합니다.

예를 들어 insert_date가있는 경우 문제가 될 수 있습니다. 이 경우 사용자가 선택한 옵션 목록이 필요합니다. 새 목록의 항목을 이전 목록에 없으면 삽입합니다. 이전 목록의 항목을 새 목록에서 찾지 못하면 삭제합니다.

관련 문제