2016-06-25 2 views
1
다음

내가 텍스트 상자

item.SubItems.Add(dr["StockCalulate"].ToString()* txtAmount.Text); 

SqlCommand cm = new SqlCommand(@"Select StockID,FoodId,StockName,StockDate, 
           StockNum,UnID,StockMin,StockCalulate 
           from StockCalutale", Conn); 
try 
{ 
    int currency = int.Parse(txtAmount.Text); 
    SqlDataReader dr = cm.ExecuteReader(); 
    while (dr.Read()) 
    { 
     ListViewItem item = new ListViewItem(dr["StockID"].ToString()); 
     item.SubItems.Add(dr["FoodId"].ToString()); 
     item.SubItems.Add(dr["StockName"].ToString()); 
     item.SubItems.Add(dr["StockDate"].ToString()); 
     item.SubItems.Add(dr["StockNum"].ToString()); 
     item.SubItems.Add(dr["UnID"].ToString()); 
     item.SubItems.Add(dr["StockMin"].ToString()); 
     item.SubItems.Add(dr["StockCalulate"].ToString()* txtAmount.Text); 

     listView1.Items.Add(item); 
    } 
} 
catch (Exception ex) 
{ 
    MessageBox.Show(ex.Message, "EROR"); 
} 
+3

문자열에 다른 문자열을 곱할 수 없습니다. 두 문자열에 숫자가 포함 된 경우에도 의미가 없습니다. C#은 VB.NET (운 좋게)과 같은 이런 종류의 자동 변환을 가지고 있지 않다. 두 문자열을 숫자로 변환 한 다음 곱셈을해야한다. 하나는 이미 변환되었습니다. – Steve

+0

_exact_ 문제가 무엇입니까? 어디서 붙어 있니? –

답변

1

당신은 다른 문자열로 문자열을 곱 수로 계산 목록보기 및 열로 선택합니다. 두 문자열에 숫자가 포함 된 경우에도 의미가 없습니다. C#은 VB.NET (운 좋게)과 같은 이런 종류의 자동 변환을 가지고 있지 않다. 두 문자열을 숫자로 변환 한 다음 곱셈을해야한다. 하나는 이미 변환되었지만 예외 준비는입니다. 그런데

SqlCommand cm = new SqlCommand(@"Select StockID,FoodId,StockName,StockDate, 
           StockNum,UnID,StockMin,StockCalulate 
           from StockCalutale", Conn); 
try 
{ 
    int currency = 0; 

    // When input comes from the user don't trust its ability with the keyboard 
    // use a foolproof way to check its input.... 
    if(!Int32.TryParse(txtAmount.Text, out currency)) 
    { 
     MessageBox.Show("Invalid currency value!"); 
     return; 
    } 

    SqlDataReader dr = cm.ExecuteReader(); 
    while (dr.Read()) 
    { 
     // Also this line is risky. I assume that you never have null values 
     // in this StockCalulate field otherwise you need to check with dr.IsDbNull 
     int value = Convert.ToInt32(dr["StockCalulate"].ToString()); 
     int newStock = value * currency; 

     ListViewItem item = new ListViewItem(dr["StockID"].ToString()); 
     item.SubItems.Add(dr["FoodId"].ToString()); 
     item.SubItems.Add(dr["StockName"].ToString()); 
     item.SubItems.Add(dr["StockDate"].ToString()); 
     item.SubItems.Add(dr["StockNum"].ToString()); 
     item.SubItems.Add(dr["UnID"].ToString()); 
     item.SubItems.Add(dr["StockMin"].ToString()); 

     item.SubItems.Add(newStock.ToString()); 
     listView1.Items.Add(item); 
    } 
} 
catch (Exception ex) 
{ 
    MessageBox.Show(ex.Message, "EROR"); 
} 

, 난 당신이 다음 소수점 데이터 타입과 동등한 변환 방법 (decimal.TryParse 및 Convert.ToDecimal)를 사용하는 것을 고려 소수를 유지해야하는 경우 데이터 유형이 여기에 사용에 대해 확실하지 않다.

+0

나는 시도하지만 Eror at item.SubItems.Add (newStock); 라인이 빨간색입니다 –

+0

ToString()을 추가하지 마세요 – Steve

+0

감사합니다 !! –