2013-10-06 4 views
0

제품 코드에 입력 한 내용이 데이터베이스를 기반으로하는 응용 프로그램을 만들었습니다.입력 문자열이 숫자 입력에서 올바른 형식이 아닙니다.

하지만 데이터베이스에 제품 코드이 입력 한 것과 일치하지 않을 때 문제가 발생합니다.

Input string was not in a correct format

그리고 그것으로 지적되고있다 :

price = Convert.ToDecimal(this.numericTextBox2.Text); 

의 나는 데이터베이스에이 같은 데이터를 가지고 있다고 가정 해 봅시다 : 그것은 나에게 오류를 제공 내가 재판을

 
+--------------+-------------+-----------+ 
| Product Code | Description | Sub Total | 
+--------------+-------------+-----------+ 
| SM0001  | Test  |  50000 | 
+--------------+-------------+-----------+ 

프로그램과 내가 제품 코드에 "SM0002"를 입력하면 오류가 표시됩니다.

참고 :

private void textBox_TextChanged(object sender, EventArgs e) 
{ 
    UpdatePrice(sender, e); 
} 

private void UpdatePrice(object sender, EventArgs e) 
{ 
    decimal quantity = 0; 
    decimal price = 0; 
    int total = 0; 

    if (numericTextBox1.TextLength == 6) 
    { 
     this.numericUpDown1.Enabled = true; 

     quantity = Convert.ToInt32(this.numericUpDown1.Value); 
     price = Convert.ToDecimal(this.numericTextBox2.Text); 
     total = Convert.ToInt32(quantity * price); 

     if (numericUpDown1.Value > 0) 
     { 
      this.numericTextBox3.Text = total.ToString(); 
     } 
    } 
} 
: 프로그램의 ITYPE "제품 코드는"이 프로그램을 여기에

에 그 "상품 코드"에 속하는 모든 정보를 표시 할 때 필요한 코드는

누구든지이 문제를 해결하는 방법을 알고 있습니까?

NumericTextBox1은 입력란이 어디에 입력합니까 제품 코드입니다.

내 코드에서 프로그램은 price을 표시하고 나머지는 Product Code이 6자를 때 데이터베이스를 기반으로합니다. 그러나 priceProduct Code을 기반으로하는 프로그램을 찾을 수 없으면 오류가 발생합니다. Product Code이 6자를 눌렀을 때 프로그램은 입력 된 product code이 데이터베이스와 일치하는지 여부를 확인합니다. 일치하면 프로그램은 입력 된 product code을 기반으로 모든 정보를 표시합니다.

EDITED :

여전히 내가 SM0001가 오류를 표시하지 않은 입력하면 입력 된 product code (numericTextBox1.Text이) 6으로 동일 할 때마다 표시 할 수있다 price 있다는 것을 인식 프로그램 왜냐하면 SM0001price이 있기 때문입니다. 그러나 SM0002에 데이터베이스의 데이터가 없지만 numericTextBox1.Text이 6 인 경우 priceprice에 속하지 않고 표시되는 프로그램이 price인데 priceproduct code (SM0002) 인 것을 나타냅니다. ..

numericTextBox1.Text이 6 자와 같을 때 데이터베이스에서 정보를 찾은 경우 product code이 데이터베이스와 일치하면 (일치) 프로그램에 나머지 문자가 표시됩니다. 정보는 해당 코드 <에 속합니다. -이 작업이 완료되어 해결되었습니다.

SM0002은 데이터베이스에 데이터가 없으므로 너.

numericTextBox1이 6자를 칠 때마다 numericTextBox2가 나옵니다. numericTextBox1이 데이터베이스와 일치하면 모든 정보가 표시됩니다. numericTextBox1가 데이터베이스와 일치하지 않는 경우 이제 내 문제는, 그것은 오류

+0

가 왜'SM0002'는 "수"라고 생각

if (Decimal.TryParse(this.numericTextBox2.Text, out price)) { total = Convert.ToInt32(quantity * price); } 
를? –

+0

아니요, ProductCode를 숫자가 아닌 텍스트로 넣습니다. – Kaoru

+0

'numericTextBox2.Text'에 무엇을 넣었습니까? – Fung

답변

0

그것은 당신이 numericTextBox2에 입력 한 내용

price = Convert.ToDecimal(this.numericTextBox2.Text); 

체크 라인에 있어야했다.

당신은 유효한 숫자가있는 경우 감지하는이 코드를 시도 할 수 있습니다

편집 :

+0

'numericTextBox2.Text'는'SubTota'l이 나오고,'SubTotal'이 나오고 나머지는 올 것입니다 '제품 코드'가 6 자 또는 데이터베이스를 기반으로하는 경우. 그러나 이번에는 데이터베이스에없는 '제품 코드'를 입력 할 때 프로그램에 오류가 표시되지 않게하려고합니다. 어떻게해야합니까? – Kaoru

+0

'numericTextBox2'는 어떻게 채워 집니까? – Szymon

+0

내 편집을 확인하십시오. 어쩌면 여전히 도움이 될 것입니다. 그래도 여전히 요구 사항을 얻지는 못합니다. – Szymon

관련 문제