:) upgrade to 3.5 or at-least 2.0 For work around check the following:
http://www.netomatix.com/ViewToTable.aspx Regards, Arsalan Tamiz On Nov 14, 6:51 am, Benj Nunez <[EMAIL PROTECTED]> wrote: > Oh drat! I checked the availability of the DataView.ToTable() method > in msdn. This method is not available in .NET 1.1! > Do you know an alternative to this? I apologize if I failed to mention > the version of the framework I'm using. > > Thanks again! > > Benj > > On Nov 14, 8:38 am, Benj Nunez <[EMAIL PROTECTED]> wrote: > > > > > Hehe. I knew it! Thanks again sallushan. > > > I will create the tables first just like what you and Cerebrus > > indicated. > > I will get back to you for the results. :-) > > > Cheers! > > > Benj > > > On Nov 13, 6:37 pm, sallushan <[EMAIL PROTECTED]> wrote: > > > > Because you have just initialized the DataSet that has NO schema > > > (tables with columns, relations, etc.) > > > > If you follow the Cerebrus then you can do as, > > > > DataTable dt = ds.Tables["TBL_MFQueryResult"]; > > > DataView dv = dt.DefaultView; > > > > DataSet dsFilterDump = new DataSet(); // use one Dataset containing > > > many tables > > > > // ***** Note that dsFilterDump does NOT have any schema ******* > > > > // Filter the view according the value in the MF_TYPE column. > > > // You only require the single quotes if the column is a char Sql > > > Type. > > > dv.RowFilter = "MF_TYPE = '0'"; > > > dsFilterDump.Tables.Add(dv.ToTable("tblRenewal")); // ***** here we > > > are adding tables ******* > > > > // Filter the view according the value in the MF_TYPE column. > > > dv.RowFilter = "MF_TYPE = '1'"; > > > dsFilterDump.Tables.Add(dv.ToTable("tblNewActive")); > > > > etc. > > > > And if you like to do the way you are currently doing then you should > > > first add the tables with columns in the dsFilterDump before the loop. > > > > Regards, > > > Arsalan Tamiz > > > > On Nov 13, 2:56 pm, Benj Nunez <[EMAIL PROTECTED]> wrote: > > > > > Hello everyone, > > > > > Thank you all for your input. I decided to try Usman's suggestion and > > > > decided to stick > > > > to just one Dataset. After all, a dataset can house several tables > > > > right? > > > > > My code now looks like this: > > > > > DataSet dsFilterDump = new DataSet(); // use one Dataset containing > > > > many tables > > > > > foreach (DataRow dr in ds.Tables["TBL_MFQueryResult"].Rows) > > > > { > > > > switch (dr["MF_TYPE"].ToString()) > > > > { > > > > case "0": > > > > dsFilterDump.Tables["tblRenewal"].ImportRow(dr); > > > > break; > > > > case "1": > > > > dsFilterDump.Tables["tblNewActive"].ImportRow(dr); > > > > break; > > > > case "2": > > > > dsFilterDump.Tables["tblNewEmployee"].ImportRow(dr); > > > > break; > > > > case "3": > > > > dsFilterDump.Tables["tblNewPensioner"].ImportRow(dr); > > > > break; > > > > case "4": > > > > dsFilterDump.Tables["tblNewSurvivor"].ImportRow(dr); > > > > break; > > > > } // of switch > > > > > } // of foreach > > > > > It compiles just fine, but when I run it I get a > > > > NullReferenceException. :( > > > > I suspect that I still need to create a DataTable, put some values to > > > > it then insert it into the dataset. Am I right? > > > > > How do I express this in code? Thanks again. > > > > > On Nov 13, 2:57 pm, Cerebrus <[EMAIL PROTECTED]> wrote: > > > > > > Thank you for the awesome rating and the correction, Sallushan ! :-) > > > > > > As for the Add() method, I just modified the OP's code without really > > > > > thinking about it. It should instead be : > > > > > > --- > > > > > dsRenewal.Tables[0].Rows.Add(dr.ItemArray); > > > > > --- > > > > > > Of course, we can both agree that that code just doesn't perform well > > > > > enough. > > > > > > On Nov 13, 11:01 am, sallushan <[EMAIL PROTECTED]> wrote: > > > > > > > In my opinion Cerebrus' approach (using DataView) is best. > > > > > > > But I can't find the 'Add()' method in DataTable Class. Also > > > > > > Following > > > > > > things should be noted: > > > > > > > 1) 'dr.ItemArray' will return the array of Values in each column of > > > > > > 'dr' > > > > > > 2) If a DataRow which is already added in a DataTable canNOT be > > > > > > added > > > > > > in some other DataTable, using its Reference. One should create a > > > > > > copy > > > > > > of that DataRow (using ItemArray or some other method) and Add that > > > > > > copy in other DataTable. > > > > > > > On Nov 12, 4:56 pm, Cerebrus <[EMAIL PROTECTED]> wrote: > > > > > > > > I would rather do it this way : > > > > > > > > --- > > > > > > > DataTable dt = ds.Tables["TBL_MFQueryResult"]; > > > > > > > DataView dv = dt.DefaultView; > > > > > > > > // Filter the view according the value in the MF_TYPE column. > > > > > > > // You only require the single quotes if the column is a char Sql > > > > > > > Type. > > > > > > > dv.RowFilter = "MF_TYPE = '0'"; > > > > > > > DataTable dtRenewal = dv.ToTable("Renewal"); > > > > > > > > // Filter the view according the value in the MF_TYPE column. > > > > > > > dv.RowFilter = "MF_TYPE = '1'"; > > > > > > > DataTable dtNewActive = dv.ToTable("New Active"); > > > > > > > > --- > > > > > > > > If you must do it your way, you already have the reference to the > > > > > > > required DataRow in your For-Each block, so why do you need to > > > > > > > reference it from the DataTable ? > > > > > > > > --- > > > > > > > dsRenewal.Tables[0].Add(dr.ItemArray); > > > > > > > --- > > > > > > > > On Nov 12, 2:45 pm, Benj Nunez <[EMAIL PROTECTED]> wrote: > > > > > > > > > Hello experts, > > > > > > > > > Currently I'm stuck in a situation in which I need to copy a > > > > > > > > record > > > > > > > > from one dataset > > > > > > > > to another. Can anyone help me out with this? > > > > > > > > > My goal is to loop through a dataset and check if a certain > > > > > > > > field > > > > > > > > meets a criterion, > > > > > > > > if there's a match, that record goes through another dataset. > > > > > > > > Here's > > > > > > > > what my code looks like: > > > > > > > > > DataSet dsRenewal = new DataSet(); > > > > > > > > DataSet dsNewActive = new DataSet(); > > > > > > > > ... > > > > > > > > > foreach (DataRow dr in ds.Tables["TBL_MFQueryResult"].Rows) > > > > > > > > { > > > > > > > > if (dr["MF_TYPE"] == '0') // '0' means its a > > > > > > > > renewal, '1' > > > > > > > > New Active and so on... > > > > > > > > { > > > > > > > > > > > > > > > > dsRenewal.Tables[0].Add(ds.Tables["TBL_MFQueryResult"].Rows > > > > > > > > [?].ItemArray); // huh? > > > > > > > > } > > > > > > > > else if (dr[...]) > > > > > > > > { > > > > > > > > dsNewActive.Tables[].... > > > > > > > > } > > > > > > > > ... > > > > > > > > > } > > > > > > > > > Cheers! > > > > > > > > > Benj- Hide quoted text - > > > > > > > > - Show quoted text -- Hide quoted text - > > > > > > > - Show quoted text -- Hide quoted text - > > > > > - Show quoted text -- Hide quoted text - > > - Show quoted text -
