2015-01-30 6 views
0

데이터 그램 뷰가 있는데 데이터베이스에서 데이터를로드합니다. SPENDING_SUM은 데이터베이스에서 두 번이지만 datagridview에서 돈으로 변경하려고합니다 (예 : 데이터베이스 값이 1234567.00이고 datagridview에 표시 할 내용이 $ 1,234,567.00). 값을 변환하는 방법을 모르십시오..net datagridview 값은 데이터베이스로드시 셀 값을 변경합니다.

관련 코드는 다음과 같습니다

 Using connObj As New SqlClient.SqlConnection(My.Settings.dbConnectionString) 
      connObj.Open() 


      querySql = "SELECT UPPER(USER_ID) AS 'USER ID', UPPER(USER_NAME) AS 'USER NAME', " & vbCrLf & 
         "CONVERT(varchar,JOIN_DATE, 103) AS 'JOIN DATE'," & vbCrLf & 
         "SPENDING_SUM AS 'SPENDING SUM' FROM USERS WHERE USER_NAME = " & vbCrLf & 


      querySql = querySql + userName.Text 

      Try 
       adapter = New SqlDataAdapter(querySql, connObj) 
       adapter.Fill(ds) 
       DataGridView1.DataSource = ds.Tables(0) 
      Catch ex As Exception 
       logger.Error(ex.ToString) 
      End Try 

      connObj.Close() 
     End Using 

답변

0

당신이

querySql = "SELECT UPPER(USER_ID) AS 'USER ID', UPPER(USER_NAME) AS 'USER NAME', " & vbCrLf & 
         "CONVERT(varchar,JOIN_DATE, 103) AS 'JOIN DATE'," & vbCrLf & 
         " '$' + convert(varchar(100),SPENDING_SUM) AS 'SPENDING SUM' FROM USERS WHERE USER_NAME = " & vbCrLf & 

경우처럼 대신 사용할 수있는 돈으로 뭔가를 필드로 변환 할 필요가 없습니다 달러 ($) 기호를 앞으로 제출 한 값을 표시하려면 당신이 돈에 변환 할, 당신은 어쨌든 내가 좋아

querySql = "SELECT UPPER(USER_ID) AS 'USER ID', UPPER(USER_NAME) AS 'USER NAME', " & vbCrLf & 
         "CONVERT(varchar,JOIN_DATE, 103) AS 'JOIN DATE'," & vbCrLf & 
         "cast(SPENDING_SUM as money) AS 'SPENDING SUM' FROM USERS WHERE USER_NAME = " & vbCrLf & 

같은 캐스트 연산자를 사용할 수 있습니다 첫 번째 솔루션은 더 나은 쿼리 성능을 제공합니다.

+0

감사합니다. 두 번째 해결 방법은 값을 돈으로 변환하지만 내부에서는 여전히 "$"및 ","을 볼 수 없습니다. 첫 번째 솔루션이 작동합니다. –

0

여기에 간단한 코드를 표시하려는 lblDisplay라는 컨트롤이 있다고 가정합니다.

lblDisplay.Text = String.Format("{0:C2}", SPENDING_SUM) 

간단한 사용을 위해이 예를 시도해보십시오.

Dim Numbers As Double = 1234567.0 
lblDisplay.Text = String.Format("{0:C2}", Numbers) 

희망 하시겠습니까?