DataSetに変更

DataSetをバインドしているため、dataGridViewで行の追加が出来ないような時に、
DataSetを変更する一例 (良いサンプルではありません)

行の追加
DataRow dr = DataSet1.Tables[0].NewRow();
DataSet1.Tables[0].Rows.InsertAt(dr, pos );

行のコピー
DataSet1.Tables[0].Rows[pos1].ItemArray = DataSet1.Tables[0].Rows[pos2].ItemArray;

行の削除
DataSet1.Tables[0].Rows.RemoveAt(pos);


ソート

DataTable dt = DataSet1.Tables[0].Clone();
DataView dv = new DataView(DataSet1.Tables[0]);
dv.Sort = "sort";
foreach (DataRowView drv in dv)
{
dt.ImportRow(drv.Row);
}
dt.TableName = "rooms_tmp";
DataSet1.Tables.Add(dt);
DataSet1.Tables.RemoveAt(0);
DataSet1.Tables[0].TableName = "rooms";