2017-03-12 24 views
0

このクエリを実行すると、このエラーが発生します。 ヘルプは高く評価されています。{"オペランドタイプのクラッシュ:intはテキストと互換性がありません"}

{"Operand type clash: int is incompatible with text"}

これは私のコードです:

SqlCommand cmd1 = cons.CreateCommand(); 
       cmd1.CommandType = CommandType.Text; 
       cmd1.CommandText = "update coffeeshop set Quantity=convert(varchar(MAX),Quantity)-" + t1.Text; 

       cmd1.ExecuteNonQuery(); 

私は離れて、それがコード怒鳴るに見られるように変換(varchar型(最大)を取る場合:

SqlCommand cmd1 = cons.CreateCommand(); 
     cmd1.CommandType = CommandType.Text; 
     cmd1.CommandText = "update coffeeshop set Quantity=Quantity-" + t1.Text; 
     cmd1.ExecuteNonQuery(); 

をその後、私はこれを取得エラー:

{"Operand type clash: text is incompatible with int"}

+0

あなたのテーブル内のQuantity' 'の種類は何ですか?また、 't1.Text'の値は? – Abion47

+0

数量タイプはデータベーステーブルのテキストで、t1.textの値はユーザーに依存します。これは、ユーザーが数量を挿入するための空のテキストボックスであり、表示されたとおりに減算されます。 – khans

答えて

0

これを試してみてくださいantityがvarcharです:textため

cmd1.CommandText = "update coffeeshop set Quantity= Convert(int,Quantity)-" + t1.Text; 

はこれを試してみてください。

cmd1.CommandText = "update coffeeshop set quantity= Convert(varchar(max) , Convert(INT, Convert(varchar(max),quantity))- "+ t1.Text + ")"; 
+0

{"データ型のテキストからintへの明示的な変換は許可されていません"}これは私が得るエラーです – khans

+0

@khans私の編集を参照してください。正確には私が書いたものではない場合、わずかなバリエーションであなたのために働く必要があります。 – Sadique

+0

ありがとうございました – khans

関連する問題