Sort string items in a datatable as int using c#

I have some numeric codes stored in a DataTable. When I try to sort it using DataView it sorts the column by string. What is the easiest way to sort the data as integer/number?

DataView view = dt.DefaultView();
view.Sort = "Code asc";
dt = view.ToTable();

Data in datatable: 128, 123, 112, 12, 126

after sort it shows: 112, 12, 123, 126, 128

expected result: 12, 112, 123, 126, 128


Here is working example. You can create another DataTable via Clone, and change the data type of the column to Int and copy the data.

    DataTable dt = GetTable(); // Assume this method returns the datatable from service      
    DataTable dt2 = dt.Clone();
    dt2.Columns["Code"].DataType = Type.GetType("System.Int32");

    foreach (DataRow dr in dt.Rows)
    {
        dt2.ImportRow(dr);
    }
    dt2.AcceptChanges();
    DataView dv = dt2.DefaultView;
    dv.Sort = "Code ASC";

One option is to add a Calculated column with the right type and sort on it.

Like this:

dt.Columns.Add( "Int32_Code", typeof( int ), "Code" );
dt.DefaultView.Sort("Int32_Code");
dt = dt.DefaultView.ToTable();

When you are creating a column in data table, define it as typeof(int)

dt.Columns.Add("Code", typeof(int));