2011-01-26 6 views
0

私は送信ボタンを正常に動作させるために選択する必要のあるいくつかのエンティティを含むリストボックスを持っていますが、エンティティが選択されていないときはエラーが発生します 使用している言語でご質問をタグ付けしてください、誰もがここでコード にトライキャッチを適用する場所で私を助けることができるコードasp.netでifステートメントでtry catchを使用して

protected void SubmitBtn_Click(object sender, EventArgs e) 
{ 
     SqlConnection con = new SqlConnection(); 
     con.ConnectionString = ConfigurationManager.ConnectionStrings["cn"].ConnectionString; 

     business.clsprofiles obj1 = new business.clsprofiles(); 
     business.clsprofilesprp objprp1 = new business.clsprofilesprp(); 
     objprp1.id = Convert.ToInt32(Session["cod"]); 
     objprp1.name = TextBox1.Text; 
     objprp1.password = TextBox2.Text; 
     objprp1.description = TextBox3.Text; 
     objprp1.modified = DateTime.Now; 
     obj1.upd_profiles(objprp1); 
     // 
     if (con.State == ConnectionState.Closed) 
     { 
       con.Open(); 
     } 
     SqlCommand cmd = new SqlCommand("select id from profiles_plugins where profile_id=" + Convert.ToInt32(Session["cod"]), con); 
     SqlDataReader dr = cmd.ExecuteReader(); 
     var yourlist = new List<Int32>(); 
     if (dr.HasRows) 
     { 
       while (dr.Read()) 
       { 
         yourlist.Add(Convert.ToInt32(dr[0])); 
       } 
     } 
     dr.Close(); 
     cmd.Dispose(); 
     con.Close(); 
     // 
     Array k = yourlist.ToArray(); 
     // 
     business.clsprofiles_plugins obj2 = new business.clsprofiles_plugins(); 
     business.clsprofiles_pluginsprp objprp2 = new business.clsprofiles_pluginsprp(); 
     for (Int32 i = 0; i < k.Length; i++) 
     { 
       objprp2.id = Convert.ToInt32(k.GetValue(i)); 
       obj2.del_profiles_plugins(objprp2); 
     } 

     for (Int32 i = 0; i < ListBox1.Items.Count; i++) 
     { 

       if (ListBox1.Items[i].Selected) 
       { 
         objprp2.profile_id = Convert.ToInt32(Session["cod"]); 
         objprp2.plugin_id = Convert.ToInt32(ListBox1.Items[i].Value); 
         obj2.sav_profiles_plugins(objprp2); 
       } 
     } 
     Response.Redirect("myprofile.aspx"); 
} 
+0

を次試みるれるキャッチを試みるために新しいです。誰もがtry-catchとタグ付けされた新しい質問を熱心に待っていることはありませんが、多くの専門家が、彼らが優れている言語でタグ付けされた新しい質問を見ています。 –

+1

提出を防ぐためにバリデーションを使用したり、DBへの接続を開始する前に選択したアイテムのリストボックスをチェックしたりすることができます。いくつかのリソースを節約し、高価なtry ... catchソリューションを避ける –

+0

さて、リソースを自動的に破棄して接続を閉じるためにusingステートメントを実装する方法を学んでください。 http://dotnetperls.com/sqlconnectionを参照してください。 –

答えて

0

protected void SubmitBtn_Click(object sender, EventArgs e) { 
SqlConnection con = new SqlConnection(); 
      try 
      { 
       con.ConnectionString = ConfigurationManager.ConnectionStrings["cn"].ConnectionString; 
       //business.clsprofiles obj1 = new business.clsprofiles(); 
       // business.clsprofilesprp objprp1 = new business.clsprofilesprp(); 
       // objprp1.id = Convert.ToInt32(Session["cod"]); 
       // objprp1.name = TextBox1.Text; 
       // objprp1.password = TextBox2.Text; 
       // objprp1.description = TextBox3.Text; 
       // objprp1.modified = DateTime.Now; 
       // obj1.upd_profiles(objprp1); 
       // 
       if (con.State == ConnectionState.Closed) 
       { 
        con.Open(); 
       } 
       SqlCommand cmd = new SqlCommand("select id from profiles_plugins where profile_id=" + Convert.ToInt32(Session["cod"]), con); 
       SqlDataReader dr = cmd.ExecuteReader(); 
       var yourlist = new List<Int32>(); 
       if (dr.HasRows) 
       { 
        while (dr.Read()) 
        { 
         yourlist.Add(Convert.ToInt32(dr[0])); 
        } 
       } 
       dr.Close(); 
       cmd.Dispose(); 
       con.Close(); 
       // 
       Array k = yourlist.ToArray(); 
       // 
       //business.clsprofiles_plugins obj2 = new business.clsprofiles_plugins(); 
       //business.clsprofiles_pluginsprp objprp2 = new business.clsprofiles_pluginsprp(); 
       //for (Int32 i = 0; i < k.Length; i++) 
       //{ 
       // objprp2.id = Convert.ToInt32(k.GetValue(i)); 
       // obj2.del_profiles_plugins(objprp2); 
       //} 

       //for (Int32 i = 0; i < ListBox1.Items.Count; i++) 
       //{ 

       // if (ListBox1.Items[i].Selected) 
       // { 
       //  objprp2.profile_id = Convert.ToInt32(Session["cod"]); 
       //  objprp2.plugin_id = Convert.ToInt32(ListBox1.Items[i].Value); 
       //  obj2.sav_profiles_plugins(objprp2); 
       // } 
       //} 
       Response.Redirect("myprofile.aspx"); 
      } 

      catch (Exception ex) 
      { 
       //Handle exception here 
       throw; 
      } 
      finally 
      { 
       if (con.State == ConnectionState.Open) 
       { 
        con.Close(); 
       } 
      } 
} 
関連する問題