2016-07-15 5 views
-1

を行を追加しようとするエラーこんにちは、私はこの前に働いていたと確信しているが、今私は、次のエラーメッセージになっている:「のDataGridViewに

のタイプの未処理の例外 『System.InvalidCastExceptionのは、』発生しました in Microsoft.VisualBasic.dll ""文字列 ""からタイプ への変換が 'Double'は無効です。 "

誰でも私が間違っている場所について何かヒントを教えてもらえますか?私は旗まで書き込み線をと数量(tbGateuQuantity.text、tbChocQuantity.textとtbCheesecake.text)のいずれかが空のままにしているときにエラーが発生し、それを明確にするために間違い

Private Sub btnBasket_Click(sender As Object, e As EventArgs) Handles btnBasket.Click 

     Dim Gat As String 
     Dim Choc As String 
     Dim Cheese As String 
     gat = tbGateuQuantity.Text 
     Choc = tbChocQuantity.Text 
     Cheese = tbCheesecakeQuantity.Text 


     If String.IsNullOrEmpty(Gat) Then 
      dgvBasket.Rows.Add(New String() {"Strawberry Gateu", lblGateuPrice.Text, tbGateuQuantity.Text, (lblGateuPrice.Text * tbGateuQuantity.Text)}) 
     Else 

     End If 

     If String.IsNullOrEmpty(Choc) Then 

      dgvBasket.Rows.Add(New String() {"Double Chocolate", lblChocPrice.Text, tbChocQuantity.Text, (lblChocPrice.Text * tbChocQuantity.Text)}) 
     Else 

     End If 

     If String.IsNullOrEmpty(Cheese) Then 

      dgvBasket.Rows.Add(New String() {"Cheesecake", lblCheesecakePrice.Text, tbCheesecakeQuantity.Text, (lblCheesecakePrice.Text * tbCheesecakeQuantity.Text)}) 
     Else 

     End If 
     'adds items to basket 

    End Sub 

を見つけるように見える、とさえカント彼らがすべて満たされたら、それ以上行を書くことはありません。

+0

電源を入れます。 'lblCheesecakePrice.Text * tbCheesecakeQuantity.Text'は無意味です - あなたは文字列/テキスト(' 'pie" * "ball" ')で数学をしています – Plutonix

+0

私はあなたが何を意味しているかを完全に理解していますが、ある時点で... –

+0

'Option Strict'を使ってコンパイルすることさえできません – Plutonix

答えて

0

ラベルやテキストボックスのテキスト属性(例:tbGateuQuantity.Text)を使用している可能性がありますか?これらは文字列なので、小計をDataGridViewに追加するときに2つを掛け合わせると、最初にdouble型などの数値型にキャストし、計算してから返答を文字列に変換する必要がありますそれを配列に追加することができます。

例 - strictオプションの

If String.IsNullOrEmpty(Gat) Then 
    dgvBasket.Rows.Add(New String() {"Strawberry Gateu", lblGateuPrice.Text, tbGateuQuantity.Text, (CStr(CDbl(lblGateuPrice.Text) * CDbl(tbGateuQuantity.Text)))}) 
End If 
+0

こんにちは、数量と価格にはそれぞれ独自のセクションがありますが、それらを合計して合計の列を形成する必要があります。私はそれをすると思うことができる唯一の方法。別のオプションを提案できますか? –

+0

ああ、私はあなたが小計のための乗算を簡単にするためにセクションを数値データ型に設定できると思っていました - [私の研究をしました](https://msdn.microsoft.com/en-us/library/system)。 windows.forms.datagridview_methods(v = vs.110).aspx)なぜ私はそれらがすべての文字列であるかを見ることができます。その答えを削除しましたが、テキストボックスとラベルの値をdoubleにキャストし、それらを掛けて、答えをコンパイルするためにOption Strictをオフにしておけば、 _implicitly_がDoubleに変換されている可能性があります) – LogicalFlaps