2012-04-05 30 views
0

ボタンをクリックすると、ドロップダウンリストが表示されます。ボタンをクリックすると、SQLストアドプロシージャを実行する関数が呼び出されます。テーブルの行。しかし、ボタンをクリックすると、FormatExceptionエラーが発生します。入力文字列の形式が正しくない、ドロップダウンリスト選択値

protected void btnAssignWork_Click(object sender, EventArgs e) 
    { 
      RequestBO requestBO = new RequestBO(); 
      int oppid = Convert.ToInt32(Request.QueryString["Opportunity"]); 
      int EmpId = Convert.ToInt32(ddlRadWorkers.SelectedValue); 
      requestBO.AssignOpportunity(EmpId, oppid); 

    } 



     private void FillRadWorkerDDL() 
    { 
     RequestBO requestBO = new RequestBO(); 
     DataSet dsRADWorkers = null; 
      dsRADWorkers = requestBO.GetRadWorkers(); 
      ddlRadWorkers.DataSource = dsRADWorkers; 
      ddlRadWorkers.DataTextField = "EmpName"; 
      ddlRadWorkers.DataValueField = "EmployeeID"; 
      ddlRadWorkers.DataBind(); 
      ddlRadWorkers.Items.Insert(0, "Select Employee"); 
    } 

ラッド労働者は、ページのロード時に呼び出された塗りつぶし、およびRequestBO.GetRadWorkersは2列、社員やEMPNAMEを返します。ボタンをクリックすると、Employee IDとOpportunity IDがストアドプロシージャに渡されますが、FormatExceptionがこれを停止します。

どれガイダンスは

UPDATEを高く評価している:ポストバックASP.NETは、DDL

+0

どこでエラーが発生しますか? –

+0

この行でエラーが発生していないことを確認してください 'int oppid = Convert.ToInt32(Request.QueryString [" Opportunity "]);'? –

+0

Request.QueryString ["Opportunity"]の内容をラベルに出力すること(または環境内で動作する場合はブレークポイントを使用する)が、intに変換できる値であることを確認することは可能ですか? –

答えて

0

の新しい値に試してみてくださいに拾っていなかったため、値が間違って来ていた、申し訳ありません男を発行しましたRequest.QueryString["Opportunity"]ddlRadWorkers.SelectedValueの両方の値を参照してください。あなたはConvert.ToInt32(ddlRadWorkers.SelectedValue);に来たらそれが例外をスローすることを知らせなかったでしょう。おそらく、ddlRadWorkersのデータソースを正しく設定しなかったでしょう。このようにそれを設定します。

private void FillRadWorkerDDL() 
{ 
    ... 
    ddlRadWorkers.DataSource = dsRADWorkers.Tables[0]; 
    ... 
} 
0

使用

Convert.ToInt32(Request.QueryString["Opportunity"].ToString()) and 
int EmpId = Convert.ToInt32(ddlRadWorkers.SelectedValue.ToString()); 
0

の代わりに(文字列str)Convert.ToInt32を呼ぶあなたは、次の操作を行う必要があります。

if (!string.IsNullOrEmpty(str)) 
    { 
     Convert.ToInt32(str); 
    } 

それとも、使用することができますint.TryParse 。このメソッドは、例外をスローする代わりにブール値を返し、整数値を出力パラメータに返します。 TryParseを使用する利点は、文字列に数字以外の文字が含まれている場合に、コードが例外をスローするのを防ぐことです。

関連する問題