public static DataTable GetCdcTableData(DbConnection connection, string captureInstance, string fromLsn = null, string toLsn = null) { var sb = new StringBuilder(); sb.AppendLine(BuildQueryHeader(fromLsn, toLsn)); sb.AppendLine(BuildQueryBody(captureInstance)); using (var cmd = DbCommandFactory.Create(sb.ToString(), connection)) using (var da = DataAdapterFactory.Create(cmd)) { cmd.Parameters.AddWithValue(@CaptureInstance, captureInstance); cmd.Parameters.AddWithValue(@RawLsnFrom, (object)fromLsn ?? DBNull.Value); cmd.Parameters.AddWithValue(@RawLsnTo, (object)toLsn ?? DBNull.Value); var dt = new DataTable(); da.Fill(dt); return(dt); } }