Click here to Skip to main content
15,909,199 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
I am making a webmethod in asmx, in which i am getting data from different tables... and populate row in dataset.. but how can i fill my dataset as i am getting data from different table??? kindly help me :(


public DataSet getblancesheet(string baranchcode, string fromdate, string todate)
 {
    // List<datalist4> data = new List<datalist4>();
     DataTable dt1 = new DataTable();
     DataTable dt2 = new DataTable();
     DataTable dt3 = new DataTable();
     DataTable dt4 = new DataTable();
     DataTable finaldata = new DataTable();
     Webservice.databaseops dbo = new Webservice.databaseops();
      DataSet ds = new DataSet("Ledger");
     SqlDataAdapter adp = new SqlDataAdapter();
      //adp.Fill(ds);
     bool sheet1, sheet2, sheet3;
     sheet1 = sheet2 = sheet3 = true;
     decimal sheet1bal, sheet2bal, sheet3bal;
     sheet1bal = sheet2bal = sheet3bal = 0;
     dt1 = dbo.getdata("SELECT Bcode,Bdesc FROM Gl_bSheet1 where Compcode='" + baranchcode + "'");
     if (dt1.Rows.Count > 0)
     {
         foreach (DataRow dr1 in dt1.Rows)
         {
             // sheet1
             dt2 = dbo.getdata("SELECT Bncode,Bndesc FROM Gl_bSheet2 where Compcode='" + baranchcode + "' and Bcode='" + dr1[0] + "'");
             if (dt2.Rows.Count > 0)
             {
                 foreach (DataRow dr2 in dt2.Rows)
                 {
                     //sheet2
                     dt3 = dbo.getdata("SELECT Bnicode,Bnidesc FROM Gl_bSheet3 where Compcode='" + baranchcode + "' and Bcode='" + dr1[0] + "' and Bncode='" + dr2[0] + "'");
                     if (dt3.Rows.Count > 0)
                     {
                         foreach (DataRow dr3 in dt3.Rows)
                         {
                             //sheet3
                             dt4 = dbo.getdata("SELECT gpls.Accountno,gd.Acct_Desc FROM Gl_bSheetdetail gpls,GL_Detail gd where gpls.Compcode='" + baranchcode + "' and gpls.Bcode='" + dr1[0] + "' and gpls.Bncode='" + dr2[0] + "' and gpls.Bnicode='" + dr3[0] + "' and gpls.Accountno=gd.AccountNo");
                             if (dt4.Rows.Count > 0)
                             {
                                 foreach (DataRow dr4 in dt4.Rows)
                                 {
                                     //detialsheet
                                     finaldata = dbo.getdata("SELECT  SUM(Dr_Amount)-SUM(Cr_Amount) from gl_transaction where Accountno='" + dr4[0] + "' and Value_Date between '" + fromdate + "' and '" + todate + "'");
                                     if (finaldata.Rows[0].ItemArray[0].ToString().Length > 0)
                                     {
                                         if (sheet1)
                                         {
                                             foreach (DataRow dr in ds.Tables[0].Rows)
                                             {
                                                 DataRow dd = ds.Tables[0].NewRow();
                                                 dd[0] = dr1[1].ToString();
                                                 dd[1] = "sheet1";
                                                 dd[2] = "";
                                                 dd[3] = "";
                                                 ds.Tables[0].Rows.Add(dd);
                                                 sheet1 = false;


                                                 // data.Add(new datalist4(dr1[1].ToString(), "sheet1", "", ""));
                                                 // sheet1 = false;
                                             }
                                         }
                                         if (sheet2)
                                         {
                                             foreach (DataRow dr in ds.Tables[0].Rows)
                                             {
                                                 DataRow dd = ds.Tables[0].NewRow();
                                                 dd[0] = dr2[1].ToString();
                                                 dd[1] = "sheet2";
                                                 dd[2] = "";
                                                 dd[3] = "";
                                                 ds.Tables[0].Rows.Add(dd);
                                                 sheet2 = false;

                                                 //data.Add(new datalist4(dr2[1].ToString(), "sheet2", "", ""));
                                                 //sheet2 = false;
                                             }
                                         }
                                         if (sheet3)
                                         {
                                             foreach (DataRow dr in ds.Tables[0].Rows)
                                             {
                                                 DataRow dd = ds.Tables[0].NewRow();
                                                 dd[0] = dr3[1].ToString();
                                                 dd[1] = "sheet3";
                                                 dd[2] = "";
                                                 dd[3] = "";
                                                 ds.Tables[0].Rows.Add(dd);
                                                 //data.Add(new datalist4(dr3[1].ToString(), "sheet3", "", ""));
                                                 //sheet3 = false;
                                                 sheet3 = false;
                                             }
                                         }
                                         foreach (DataRow dr in ds.Tables[0].Rows)
                                         {
                                             DataRow dd = ds.Tables[0].NewRow();
                                             dd[0] = "-";
                                             dd[1] = dr4[0].ToString().Trim();
                                             dd[2] = dr4[1].ToString().Trim();
                                             dd[3] = dbo.valueparser(decimal.Parse(finaldata.Rows[0].ItemArray[0].ToString()), false);
                                             ds.Tables[0].Rows.Add(dd);




                                         }
                                         //data.Add(new datalist4("-", dr4[0].ToString().Trim(), dr4[1].ToString().Trim(), dbo.valueparser(decimal.Parse(finaldata.Rows[0].ItemArray[0].ToString()), false)));
                                         sheet1bal = sheet1bal + decimal.Parse(finaldata.Rows[0].ItemArray[0].ToString());
                                         sheet2bal = sheet2bal + decimal.Parse(finaldata.Rows[0].ItemArray[0].ToString());
                                         sheet3bal = sheet2bal + decimal.Parse(finaldata.Rows[0].ItemArray[0].ToString());
                                     }
                                 }
                             }
                             if (!sheet3)
                             {
                                 foreach (DataRow dr in ds.Tables[0].Rows)
                                 {
                                     DataRow dd = ds.Tables[0].NewRow();
                                     dd[0] = "sheet3end";
                                     dd[1] = "SubTotal";
                                     dd[2] = dr3[1].ToString();
                                     dd[3] = dbo.valueparser(sheet3bal, false);
                                     ds.Tables[0].Rows.Add(dd);
                                     //data.Add(new datalist4("sheet3end", "Subtotal:", dr3[1].ToString(), dbo.valueparser(sheet3bal, false)));
                                     sheet3 = true;
                                     sheet3bal = 0;
                                 }
                             }
                         }
                     }
                     if (!sheet2)
                     {
                         foreach (DataRow dr in ds.Tables[0].Rows)
                         {
                             DataRow dd = ds.Tables[0].NewRow();
                             dd[0] = "sheet2end";
                             dd[1] = "SubTotal:";
                             dd[2] = dr2[1].ToString();
                             dd[3] = dbo.valueparser(sheet2bal, false);
                             ds.Tables[0].Rows.Add(dd);




                             // data.Add(new datalist4("sheet2end", "Subtotal:", dr2[1].ToString(), dbo.valueparser(sheet2bal, false)));
                             sheet2 = true;
                             sheet2bal = 0;
                         }
                     }
                 }
             }
             if (!sheet1)

                 foreach (DataRow dr in ds.Tables[0].Rows)
                 {
                     DataRow dd = ds.Tables[0].NewRow();
                     dd[0] = "sheet1end";
                     dd[1] = "SubTotal:";
                     dd[2] = dr1[1].ToString();
                     dd[3] = dbo.valueparser(sheet2bal, false);
                     ds.Tables[0].Rows.Add(dd);

                     //data.Add(new datalist4("sheet1end", "Subtotal:", dr1[1].ToString(), dbo.valueparser(sheet1bal, false)));
                     sheet1 = true;
                     sheet1bal = 0;
                 }
         }
     }


     return ds;
 }
Posted
Comments
ArunRajendra 25-Jun-14 0:28am    
In which line are you getting this error?

1 solution

use SQL Joins [^] and create one one sql statement to return final data using multiple tables. then you can run that sql statement and fetch data on one request. for example you can join first two database calls as below
C#
string sql = @"SELECT g1.Bcode, g1.Bdesc,g2.Bndesc
FROM Gl_bSheet1 g1
JOIN Gl_bSheet2 on  g1.Bcode = g2.Bcode 
where g1.Compcode='" + baranchcode + "' and g2.Compcode='" + baranchcode + "'";
 
Share this answer
 
Comments
Member 10690757 25-Jun-14 6:49am    
and what about dr and cr sum?

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900