2011-01-06 10 views
0

.CS 파일에 함수가 있습니다. 내가 아래 함수에서 값을 반환하는 방법 (같은 프로젝트에서 두 파일)C# 함수의 값 반환

을 파일을 .aspx.cs하는 기능에 가져온 많은 값을 반환하려면 (이하 .CS 파일의 코드입니다) :

using System; 
using System.Configuration; 
using System.Data; 
using System.Linq; 
using System.Web; 
using System.Web.Security; 
using System.Web.UI; 
using System.Web.UI.HtmlControls; 
using System.Web.UI.WebControls; 
using System.Web.UI.WebControls.WebParts; 
using System.Xml.Linq; 
using System.Data.Odbc; 
using System.Data.SqlClient; 
using System.Collections; 
using System.IO; 


using iTextSharp.text.html.simpleparser; 
using iTextSharp.text; 
using iTextSharp.text.pdf; 
using iTextSharp.text.html; 

/// <summary> 
/// Summary description for Data 
/// </summary> 
public class Data 
{ 
    public Data() 
    { 
     // 
     // TODO: Add constructor logic here 
     // 



    } 
    public void dat(AjaxControlToolkit.HTMLEditor.Editor Editor1,TextBox TextBox3, TextBox TextBox4, TextBox TextBox2, TextBox TextBox1, DropDownList DropDownList1, DropDownList DropDownList3, HiddenField HiddenField1, HiddenField HiddenField4) 
{  
    String dbDate = DateTime.ParseExact(TextBox3.Text, "dd/mm/yyyy", null).ToString("yyyy-mm-dd"); 

     String respo1 = ""; 
     String respo2 = ""; 
     String editorcont1 = ""; 
     int res = 0; 
     String sb = ""; 

     String petitioner = ""; 
     String petitioner1 = ""; 
     String resp = ""; 
     String resp1 = ""; 

     String respondants = ""; 
     String addr1 = ""; 
     String addr2 = ""; 


     var order = ""; 

     String nextdate = ""; 
     String nextdate1 = "**/**/****"; 
     String judge1 = ""; 
     String judge2 = ""; 
     String judge3 = ""; 
     String advocates = ""; 


     String a = DropDownList1.SelectedItem.Value; 
     String b = DropDownList3.SelectedItem.Value.PadLeft(3, '0'); 
     String c = TextBox1.Text.PadLeft(5, '0').ToString(); 
     String d = TextBox2.Text.ToString(); 
     String digit = a + b + c + d; 
     String jjj = ""; 


     try 
     { 
      OdbcConnection casetype = new OdbcConnection("Driver={MySQL ODBC 3.51 Driver};Server=10.155.160.130;Database=testcase;User=root;Password=;Option=3;"); 
      casetype.Open(); 

      String petresquery1 = "select fil_no from testcase.main where reg_no =? OR fil_no=?"; 
      OdbcCommand petrescmd1 = new OdbcCommand(petresquery1, casetype); 
      petrescmd1.Parameters.AddWithValue("?", digit); 
      petrescmd1.Parameters.AddWithValue("?", digit); 
      OdbcDataReader respetMyReader1 = petrescmd1.ExecuteReader(); 

      while (respetMyReader1.Read()) 
      { 
       String fil_no = respetMyReader1["fil_no"].ToString(); 
       HiddenField4.Value = fil_no; 
       //Response.Write(HiddenField4.Value); 
      } 


      string showmodifquery = "select notice from notice_aspx where fil_no=?"; 

      OdbcCommand showmodifcmd = new OdbcCommand(showmodifquery, casetype); 

      showmodifcmd.Parameters.AddWithValue("?", HiddenField4.Value); 
      OdbcDataReader showmodifMyReader = showmodifcmd.ExecuteReader(); 

      if (showmodifMyReader.Read()) 
      { 
       String showmodif1 = showmodifMyReader["notice"].ToString(); 

       Editor1.Content = showmodif1; 
      } 
      else 
      { 
       //************to get case type  
       string casetypequery = "select casename from casetype where skey=?"; 
       //************to get pet res 
       string petresquery = "select pet_name,res_name from testcase.main where reg_no =? OR fil_no=?"; 
       //*******to get respondants 
       string respoquery = "SELECT sr_no,partyname,addr1,addr2 FROM testcase.party where fil_no=? and pet_res='R'order by sr_no,party_lh,party_lh2,party_lh3,party_lh4,party_lh5"; 
       //*******to get order 
       string ordequery = "select orde from testcase.orddetpabak where fil_no=? and orderdate=?"; 
       //*********to get next date 
       string nextdatequery = "SELECT next_dt FROM testcase.heardt where fil_no=? and next_dt>?;"; 
       //*********to get jud1 
       string jud1query = "select jname from testcase.orddetpabak,testcase.judge where orddetpabak.jud1 = judge.jcode and fil_no=? and orderdate=?;"; 
       //*********to get jud2 
       string jud2query = "select jname from testcase.orddetpabak,testcase.judge where orddetpabak.jud2 = judge.jcode and fil_no=? and orderdate=?;"; 
       //*********to get jud3 
       string jud3query = "select jname from testcase.orddetpabak,testcase.judge where orddetpabak.jud3 = judge.jcode and fil_no=? and orderdate=?;"; 
       //*********to get advocates 
       string advquery = "SELECT adv FROM testcase.orddetpabak where fil_no=? and orderdate=?"; 



       //************to get case type 
       OdbcCommand casetypecmd = new OdbcCommand(casetypequery, casetype); 
       String casetypefromdropdown = DropDownList3.SelectedItem.ToString(); 
       casetypecmd.Parameters.AddWithValue("?", casetypefromdropdown); 
       using (OdbcDataReader casetypeMyReader = casetypecmd.ExecuteReader()) 
       { 
        while (casetypeMyReader.Read()) 
        { 
         String casename = casetypeMyReader["casename"].ToString(); 
         HiddenField1.Value = casename; 
        } 
       } 

       //************to get pet res 
       OdbcCommand petrescmd = new OdbcCommand(petresquery, casetype); 
       petrescmd.Parameters.AddWithValue("?", digit); 
       petrescmd.Parameters.AddWithValue("?", digit); 
       using (OdbcDataReader respetMyReader = petrescmd.ExecuteReader()) 
       { 
        while (respetMyReader.Read()) 
        { 
         petitioner1 = respetMyReader["pet_name"].ToString(); 

         //petitioner1 = petitioner.Substring(0, 1) + petitioner.Substring(1).ToLower(); 
         resp1 = respetMyReader["res_name"].ToString(); 
         //resp1 = resp.Substring(0, 1) + resp.Substring(1).ToLower(); 

         //String fil_no = respetMyReader["fil_no"].ToString(); 
         //HiddenField4.Value = fil_no; 
         ////Response.Write(HiddenField4.Value); 
         // return petitioner1; 
        } 
        if (petitioner1 == "") 
        { 
         HttpContext.Current.Response.Write("<b><font color='red'>Wrong Entry!!!"); 
        } 
       } 


       //*******to get respondants 

       String respo = HiddenField4.Value; 
       OdbcCommand respocmd = new OdbcCommand(respoquery, casetype); 
       respocmd.Parameters.AddWithValue("?", respo); 
       using (OdbcDataReader respoMyReader = respocmd.ExecuteReader()) 
       { 
        while (respoMyReader.Read()) 
        { 
         respo1 = respoMyReader["sr_no"].ToString(); 
         respo2 = respoMyReader["partyname"].ToString(); 
         addr1 = respoMyReader["addr1"].ToString(); 
         addr2 = respoMyReader["addr2"].ToString(); 
         res = Convert.ToInt32(respo1); 
         //Response.Write(res); 
         //Response.Write(respo2); 

         //editorcont1 = "<table><tr><td width='10'>" + res + "</td><td>"+"<P align= 'left'>"+ respo2 +"</P></td>"+"</br>"; 

         ////HiddenField7.Value = editorcont1; 
         //asd(editorcont1); 

         //respondants = respo2.Substring(0, 1) + respo2.Substring(1).ToLower(); 
         //addr1 = addr1.Substring(0, 1) + addr1.Substring(1).ToLower(); 
         //addr2 = addr2.Substring(0, 1) + addr2.Substring(1).ToLower(); 
         editorcont1 = res + ")&nbsp;&nbsp;" + respo2 + "<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" + addr1 + "&nbsp;&nbsp;" + addr2 + "<br/>"; 
         sb = sb + editorcont1; 
        } 
       } 

       //*******to get order 
       OdbcCommand ordecmd = new OdbcCommand(ordequery, casetype); 
       ordecmd.Parameters.AddWithValue("?", HiddenField4.Value); 
       ordecmd.Parameters.AddWithValue("?", dbDate); 
       using (OdbcDataReader ordeMyReader = ordecmd.ExecuteReader()) 
       { 
        while (ordeMyReader.Read()) 
        { 
         order = ordeMyReader["orde"].ToString(); 
        } 

       } 
       //*******to get nextdate 
       OdbcCommand nextdatecmd = new OdbcCommand(nextdatequery, casetype); 
       nextdatecmd.Parameters.AddWithValue("?", HiddenField4.Value); 
       nextdatecmd.Parameters.AddWithValue("?", dbDate); 
       using (OdbcDataReader nextdateMyReader = nextdatecmd.ExecuteReader()) 
       { 
        while (nextdateMyReader.Read()) 
        { 
         nextdate = nextdateMyReader["next_dt"].ToString(); 

        } 
        nextdate1 = Convert.ToDateTime(nextdate).ToString("dd/MM/yyyy"); 


       } 

       //*********to get jud1 
       OdbcCommand jud1cmd = new OdbcCommand(jud1query, casetype); 
       jud1cmd.Parameters.AddWithValue("?", HiddenField4.Value); 
       jud1cmd.Parameters.AddWithValue("?", dbDate); 
       using (OdbcDataReader jud1MyReader = jud1cmd.ExecuteReader()) 
       { 
        while (jud1MyReader.Read()) 
        { 
         judge1 = jud1MyReader["jname"].ToString(); 
         jjj = "J"; 
        } 
       } 


       //*********to get jud2 
       OdbcCommand jud2cmd = new OdbcCommand(jud2query, casetype); 
       jud2cmd.Parameters.AddWithValue("?", HiddenField4.Value); 
       jud2cmd.Parameters.AddWithValue("?", dbDate); 
       using (OdbcDataReader jud2MyReader = jud2cmd.ExecuteReader()) 
       { 
        while (jud2MyReader.Read()) 
        { 
         judge2 = jud2MyReader["jname"].ToString(); 
         jjj = "JJ"; 
        } 
       } 


       //*********to get jud3 
       OdbcCommand jud3cmd = new OdbcCommand(jud3query, casetype); 
       jud3cmd.Parameters.AddWithValue("?", HiddenField4.Value); 
       jud3cmd.Parameters.AddWithValue("?", dbDate); 
       using (OdbcDataReader jud3MyReader = jud3cmd.ExecuteReader()) 
       { 
        while (jud3MyReader.Read()) 
        { 
         judge3 = jud3MyReader["jname"].ToString(); 
         jjj = "JJJ"; 
        } 
       } 
       //*******to get advocates 
       OdbcCommand advcmd = new OdbcCommand(advquery, casetype); 
       advcmd.Parameters.AddWithValue("?", HiddenField4.Value); 
       advcmd.Parameters.AddWithValue("?", dbDate); 
       using (OdbcDataReader advMyReader = advcmd.ExecuteReader()) 
       { 
        while (advMyReader.Read()) 
        { 
         advocates = advMyReader["adv"].ToString(); 
        } 

       } 
       DateTime month = DateTime.Now; 
       String tyear = TextBox2.Text; 
       tyear = tyear.Remove(0, 2); 

       String year = DateTime.Now.Year.ToString(); 
       year = year.Remove(0, 2); 

       TextBox4.Text = order; 
      } 
     } 
        catch (Exception er) 
     { } 

} 
} 

옹호자, jjj, tyear, 올해, petitioner1, resp1, sb 등을 전달하고 싶습니다. 어떻게해야합니까?

+0

관련이 있지만, 그냥 조언하지 : 그냥 ... 당신이 뭔가가 작동하지 않는 경우 무엇이 잘못되었는지 알지 못할 것입니다 이런 식으로 오류를 포착하고 그것으로 아무것도하지 않습니다. 예외 (예 : 데이터베이스에 로그인)가있는 작업을 수행하거나 전혀 포착하지 마십시오. –

답변

6

캡슐화 새로운 유형의 관련 모든 값, 그리고 메소드의 반환을 그 타입의 인스턴스.

아, 그리고 같은 거대한 방법을 피하기 위해 시도 - 그들은 단지 하나 개의 값을 반환 등

7

메서드에서 둘 이상의 값을 반환하려면 클래스를 만들어야합니다. 예를 들어

:

public class Product 
{ 
    int Id { get; set;} 
    string Name { get; set;} 
    double Value { get; set;} 
} 

그리고 당신은 당신의 방법에서 제품을 반환 할 때

public Product GetProduct(string Id) 
{ 
    Product product; 
    // load product here 
    return product; 
} 
+0

구조체를 사용하여 작은 데이터 조각을 반환 할 수도 있습니다. 그 결과 성능이 향상 될 수 있습니다. –

+0

클래스를 생성하기위한 성능과 구조체를 생성하는 성능? 일반적으로 구조체가 무엇인지 설명하는 것보다 시간이 적을 것입니다. –

+0

실제로 클래스에 get/set을 사용하면 꽤 많은 시간을 절약 할 수 있습니다 (특히 메서드가 중첩 루프에 있음) – James