2011-10-05 3 views
4

Tech : .NET, SQL Server 2008 R2, WinformsDataRepeater에서 숫자 또는 문자열의 서식을 지정하는 방법은 무엇입니까?

자, 내 인생에서, 나는 이것을 이해할 수 없다.

맨 먼저 SQL Server 2008 데이터베이스에서 오는 데이터를 저장하기 위해 DataTable을 사용하고 있으며이를 DataRepeater에 바인딩합니다.

것은 내가 변화 시도 한 다음과 같은 바인딩 : 아니라입니다 DataRepeater에, 다른 텍스트 상자 및 라벨에 좋은 작품

label1.DataBindings.Add("Text", history, "Value", true, DataSourceUpdateMode.Never, "", "N"); 

. (label1은 DataRepeater와 연결된 ItemTemplate의 일부입니다.)

그런 데이터 바인딩이 작동하지 않으므로 DataTable을 가져 와서 열을 위의 형식으로 설정합니다.

그리고 수동으로 데이터의 형식을 변경 :

for (int i=0;i < history.Rows.Count;i++) 
{ 
    history.Rows[i]["Value"] = String.Format("{0:N}", history.Rows[i]["Value"]); 
} 

중 하나가 작동하지 않습니다는입니다 DataRepeater 그냥 다시 변경 (그것은 부동이다).

나는이 원하는 :

12,123,123.00 

을하고 나는이 얻을 :

12123123 

어떤 아이디어?

답변

1

double으로 값을 변환하는 것은 "DataTable"내역 "내역"이라고 생각합니다. 열의 데이터 형식이 double (의심되는 경우)이면 double의 문자열 표현을 받아 들여 친절하게 다시 변환합니다.

DataTable에 계산 열을 추가하고 숫자 값의 문자열 표현으로 채워야합니다.

현재 : for 문에 i++을 잊어 버렸습니다.

+0

이 해결책을 고려해 볼 수는 있지만, 많은 양의 데이터를 포맷해야하는 경우에는 좋지 않습니다.나는 그것을 고려해야 만한다. 다른 솔루션이 있는지 기다려 봅시다. 내가 이것을 닫기 전에. 또한 실제로는 부동 소수점이며 Convert.To 문은이 경우 중복되므로 삭제되었지만 응용 프로그램의 이전 부분과 붙여 넣기 된 사본에 사용되었습니다. – Christian

+0

이것이 datarepeater와 함께 작동하는 유일한 솔루션이기 때문에이 답변을 작성하십시오. – Christian

2

나쁜 영어로 죄송합니다. 이것은 나를 위해 잘 작동합니다.

private void textBox10_TextChanged(object sender, EventArgs e) 
{ 
string f = String.Format("{0:#0.00}", Convert.ToDouble(((TextBox)sender).Text)); 
     ((TextBox)sender).Text = f; 
} 

예 :

textBox10.Text= 48
result= 48.00

변경 서로 다른 데이터 유형이 코드.

에있는 텍스트 상자의 TextChanged 이벤트를 사용합니다.

0

12123123을 12,123,123으로 자동 변환하려면; 이 코드를 텍스트 상자의 _TextChanged 이벤트에 넣으십시오.

int i = ((TextBox)sender).SelectionStart; 
     if (((TextBox)sender).Text != "") 
     { 
      string f = String.Format("{0:N0}", Convert.ToDouble(((TextBox)sender).Text)); 
      ((TextBox)sender).Text = f; 
      int len; 
      len = ((TextBox)sender).Text.Replace(",", "").Length; 
      if ((len %= 3) == 1) 
      { 
       i += 1; 
      } 
      ((TextBox)sender).SelectionStart = i; 
     } 
관련 문제