2015-02-21 4 views
-4

Я получаю некоторые десятичные результаты из моей базы данных, но я хотел бы преобразовать их в строку. Значение, которое возвращается из базы данных, как 2.500000 или 1.500000, но в этом примере я хочу показать, как 2,5 или 1,5Как преобразовать десятичную строку в строку с помощью C#

using (SqlConnection con = new SqlConnection(strConnString)) 
{ 
    using (SqlCommand cmd = new SqlCommand()) 
    { 
     cmd.Connection = con; 
     cmd.CommandType = CommandType.Text; 
     cmd.CommandText = @"select DATEDIFF(minute, Min(myDate), Max(myDate))/60.0 as hours     
          from myTable 
          where userid = @UserID 
           and DT_Submitted = (select CAST(FLOOR(CAST(GETDATE() AS FLOAT)) AS DATETIME)) 
           and Checked = 1"; 

     cmd.Parameters.AddWithValue("@UserID", tempUser.ToString()); 

     con.Open(); 
     decimal result = (decimal)cmd.ExecuteScalar(); 
     lblHours.Text = result.ToString() + " Hours"; 

     con.Close(); 
     con.Dispose(); 
    } 
} 
+3

Вы видели перегрузку 'ToString()', которая принимает строку формата? –

+0

Пожалуйста, в будущем опубликуйте http://sscce.org/. Здесь нет причин для кода вашей базы данных. – Aron

ответ

2

Вам просто нужно вызвать одну из перегрузок ToString, которая принимает строку формата.

using (SqlConnection con = new SqlConnection(strConnString)) 
{ 
    using (SqlCommand cmd = new SqlCommand()) 
    { 
     cmd.Connection = con; 
     cmd.CommandType = CommandType.Text; 
     cmd.CommandText = @"select DATEDIFF(minute, Min(myDate), Max(myDate))/60.0 as hours     
          from myTable 
          where userid = @UserID 
           and DT_Submitted = (select CAST(FLOOR(CAST(GETDATE() AS FLOAT)) AS DATETIME)) 
           and Checked = 1"; 

     cmd.Parameters.AddWithValue("@UserID", tempUser.ToString()); 

     con.Open(); 
     decimal result = (decimal)cmd.ExecuteScalar(); 
     lblHours.Text = result.ToString("0.#") + " Hours"; 

     con.Close(); 
    } 
} 

На стороне записки, вам не нужно звонить Dispose на подключение к, потому что вы в использовании блок, который делает это автоматически. Тем не менее, вы должны позвонить по телефону Close.

+0

благодарит человека, вы спасли мой день, и это именно то, что я искал. еще раз спасибо – moe

0

Используйте этот код, чтобы преобразовать десятичные значения в строку:

num.ToString("0.#") 
+0

Неправильный путь круглый чувак. – Aron

+0

@aron обновил ответ – Fahim

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