2013-05-06 1 views
0

내 목표는 checkbooxlist의 모든 체크 항목을 데이터베이스의 단일 열에 입력하는 것입니다. 좋은 디자인이 아닙니다. 그러나 이것이 요구 사항입니다.선택한 모든 항목을 데이터베이스 단일 열에 저장하는 방법

>

  objCon.Open() 
      objCmd = New SqlCommand("insert into activity_by_customer (userID, city, personal_activities, BookingDate, price) values ('" & frmLogin.userID & "','" & cbbCity.Text & "','" & listitems & "','" & Date.Today & "','" & lblpriceValue.Text & "')", objCon) 
      objCmd.ExecuteNonQuery() 
      activitiesbycustomer.Update(Me.ResourcesDataSet.activity_by_customer) 
      MsgBox("Your booking has been successful") 
      objCon.Close() 
: 내 테이블을 채우기 위해 실행 된 연결 문자열 및 명령 여기

Dim listitems As String 
listitems = ControlChars.CrLf 
      For i = 0 To (chkActivities.Items.Count - 1) 
       If chkActivities.GetItemChecked(i) = True Then 
        listitems = listitems & (i + 1).ToString & chkActivities.Items(i).ToString & ControlChars.CrLf 
       End If 
      Next 

됩니다 : 여기

내가 checkboxlist에서 선택한 모든 항목을 얻기 위해 사용하는 코드입니다

그러나이 코드를 실행하면 오류가 발생하여 충돌합니다. 오류는 다음과 같습니다.

's'근처에 구문이 잘못되었습니다. 문자열 ')'다음에 닫지 않은 따옴표가 있습니다.

'listitems'때문에이 오류가 표시됩니다. 도움이 될 것입니다.

답변

0

목록 항목 작성 방법에는 문제가 없지만 데이터베이스에 값을 전달하는 방법에는 문제가 없습니다.

이 방법은 SQL 명령을

objCon.Open() 
objCmd = New SqlCommand("insert into activity_by_customer " & _ 
    "(userID, city, personal_activities, BookingDate, price) " & _ 
    "values (@usrID, @city, @itms, @dt, @price)", objCon) 
objCmd.Parameters.AddWithValue("@usrID",frmLogin.userID) 
objCmd.Parameters.AddWithValue("@city",cbbCity.Text) 
objCmd.Parameters.AddWithValue("@itms", listitems) 
objCmd.Parameters.AddWithValue("@dt",Date.Today) 
objCmd.Parameters.AddWithValue("@price", lblpriceValue.Text) 
objCmd.ExecuteNonQuery() 
.... 

를 구축하는 문자열 연결을 사용하지 마십시오, 프레임 워크 코드는 값은 작은 따옴표와 같은 문자의 존재를 고려하고 그에 구문 오류를 방지 포맷합니다. 또한, 이런 식으로 피하십시오 Sql Injection attacks

+0

답장을 보내 주셔서 감사합니다, 당신이 제공 한 답변은 정확하고 작동합니다. 순전히 학업 목적으로이 솔루션에 대한 상대 링크를 제공 할 수 있는지 물어볼 수 있습니다. –

관련 문제