Harsh
Harsh

Reputation: 165

Joining Values Of Two Columns From DataTable

Joining Values Of Two Columns From DataTable Two columns make it in one columns from datatable

my datatable is

   TagNumber, LogNumber  Combined
    124           1         2
    125           1         3
    126           2         4
o/p:

     TagNumber 
    124 ~1~2          
    125 ~1~3         
    126 ~2~4         
 combined column is merge from column0 and column1

i dont understand hw can i do please write sample of code

I dont have experience on linq . I add column bt hw can i merge two columns in that one columns

I got answer:

For i As Integer = 0 To dstemp.Tables(0).Rows.Count - 1
dstemp.Tables(0).Rows(i)(0) = dstemp.Tables(0).Rows(i)("TagNumber") & "~" &      dstemp.Tables(0).Rows(i)("LogNumber") & "~" & dstemp.Tables(0).Rows(i)("Combined")
next

Upvotes: 4

Views: 29331

Answers (4)

Nil
Nil

Reputation: 161

Try doing it like this.

 dtTwoItems.Columns.Add("Combined", typeof(string), "TagNumber+'/'+LogNumber");

Upvotes: 12

Ram Singh
Ram Singh

Reputation: 6938

Ok if you really want to do this then you have create a extra DataTable with Three Columns:

TagNumber, LogNumber Combined: as below:

private DataTable CreateDataTableColumns()
{
    DataTable dtThreeItems = new DataTable();
    dtThreeItems.Columns.Add("TagNumber", typeof(String));
    dtThreeItems.Columns.Add("LogNumber", typeof(String));
    dtThreeItems.Columns.Add("Combined", typeof(String));
    return dtThreeItems;
}

Now iterate the old datatable as below to get combined value:

foreach (DataRow dr in dtTwoItems.Rows)
            {
                row = dtThreeItems.NewRow();
                row["TagNumber"] = dr["TagNumber"].ToString();
                row["LogNumber"] = dr["LogNumber"].ToString();
                row["Combined"] = dr["TagNumber"].ToString()+"/"+dr["LogNumber"].ToString() ;
                dtThreeItems.Rows.Add(row);
            }

Thats All

Upvotes: 5

Sumit Gupta
Sumit Gupta

Reputation: 2192

Did you try to Add new Column to DataTable and then iterate through Each Row to put value by combining them?

EDIT: I Am not sure if Linq or Datatable query have some inbuilt feature to do this, but simple solution is what I tell. Or if you are filling your datatable from any SQL Query based database, then write a SQL that has third column with merged value using concat of columns.

Edit2:

foreach (Datarow r in myTable.Rows) {
   r["Newcolumn"] = Convert.ToString(r["c1"]) + "/" + Convert.ToString(r["c2"]);
}

Upvotes: 1

carbonara
carbonara

Reputation: 49

DataTable is like a container. It is not proper to join tables.

I recommend you'd use linq.

Upvotes: 1

Related Questions