2016-06-02 4 views
-3

こんにちはIVEはこのエラーを得たが、theresのエラーCS0029:暗黙的に「INT」にタイプ「string」を変換し、私が実行しようとしたとき

説明することはできません:エラーは、このサービスを提供するために必要なリソースのコンパイル中に発生しました要求。以下の特定のエラーの詳細を確認し、ソースコードを適切に変更してください。

コンパイラエラーメッセージ:CS0029:暗黙的に「INT」にタイプ「string」を変換できません、あなたのパラメータの

cmd.Parameters.AddWithValue("@pDateOfDelivery", po.dateOfDelivery); 
       cmd.Parameters.AddWithValue("@pStatus", po.status); 
       cmd.Parameters.AddWithValue("@pDeliveryTiming", po.deliveryTiming); 
       cmd.Parameters.AddWithValue("@pCoID", po.coID); 

       try 
       { 
        conn.Open(); 
        int iResult = cmd.ExecuteNonQuery(); 
        if (iResult > 0) 
        { 
         result = "You have successfully updated the DeliveryOrder!"; 
        } 
        else 
        { 
         result = "You have encountered an error. Please try again."; 
        } 
       } 
       catch (Exception) 
       { 
        result = "You have encountered an error. Please try again"; 
       } 
       finally 
       { 
        cmd.Dispose(); 
        conn.Close(); 
       } 
      } 
     } 
     return result; 
    } 
+1

どのような行?... – Gusman

+1

あなたのメソッドの定義を教えてください。私はそれがintを返していると言いますが、あなたは文字列である 'result'を返します。 – Rob

答えて

0

一つは、int種類を期待していますが、stringタイプを渡しています。

文字列をintに変換して渡すと、以下のようになります。

cmd.Parameters.AddWithValue("@pCoID", Int32.Parse(po.coID)); 
0

使用整数にご文字列変数を変換するConvert.ToInt32方法

cmd.Parameters.AddWithValue("@pCoID",Convert.ToInt32(po.coID)); 
+0

反対の変換についてはエラーが発生しています。 – sstan

0

あなたが期待するデータ型を指定することができるようにあなたがcmd.Parameters.Add()を使用する必要があります。

OdbcCommandsを使用している場合は、パラメータのデータ型はOdbcTypeSqlCommandを使用している場合はSqlDbTypeです。つまり、データ型はコマンドの型に依存します。ここにはSqlDbTypeの例があります。

cmd.Parameters.Add("@", SqlDbType.Int).Value = po.coID; 

po.coIDが整数型であることを確認してください。それ以外の場合は整数に変換する必要があります。私はこの変換のためにInt32.TryParse()を提案したいと思います

関連する問題