2015-01-30 2 views
0

У меня есть datagridview и он загружает данные из базы данных. 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 & 

anyways я предпочитаю первое решение, поскольку оно обеспечит более высокие показатели запросов.

+0

Большое спасибо. Хотя второе решение конвертирует стоимость в деньги, я все еще не вижу «$» и «,» внутри. Первое решение работает. –

0

Предположим, у вас есть элемент управления с именем lblDisplay, где вы хотите отобразить это здесь, это простой код.

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

Для удобства использования попробуйте этот пример.

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

Надеюсь, это ответили на ваш вопрос.

Смежные вопросы