RDLC-Bericht dynamisch zur Laufzeit aus einer DataGridView erstellen

Ich habe ein FormularAdvancedSearchForm mit einerDatenrasteransich SteuerungdgrData und eine TasteReport in C # Winform. Bei Klick auf den ButtonReport, Ich wünsche, dass ein Formular mit einem ReportView control wird mit denselben Spalten wie in der DataGridView mit denselben Spaltenüberschriften angezeigt.

Form mit DataGridView und Button

Ausgabe wird erwartet, wenn Sie auf die Schaltfläche "Bericht" klicken:

MyDatenrasteransich (dgrData) Kontrolle ist mit @ verbund

SQL
“Select Id, c_Name from Country”
ConnectionString
server=localhost;User Id=root;password=root;Persist Security Info=True;database=country_state

Um Daten zur Laufzeit in das Grid zu laden, bereite ich Folgendes vor DataAdapter:

DataAdapter dataAdapter = DataAdapter.Current;
// I am passing the SQL statement and the table name to my database which knows the ConnectionString within the LoadData function

DataTable dt0 = dataAdapter.LoadData("select Id, c_Name from `country`", "country");
if (dt0 != null) {
   dgrData.DataSource = dt0;
}

Ist es möglich, ein untergeordnetes Formular mit dem Standardwert @ aufzurufe reportviewer control zeigt einen Bericht mit einer Tabelle an, die Spalten enthält, die der Datagrid-Ansicht entsprechen dgrData) zusammen mit Daten dynamisch zur Laufzeit?

Ausgangserwartung im Detail:

Auf Knopfdruck sollte der Reportviewer auf dem Zielformular @ erhalt
der dataSource zugeordnet aus den Werten imDatenrasteransich. Also, das ReportViewer control weiß nichts über die Daten im Bericht, bis der Benutzer zur Laufzeit auf die Schaltfläche "Bericht" klickt.Ich wünschte, die Lösung erfordert nicht die Erstellung einer separaten RDLC-Datei, da dies zu einer externen Abhängigkeit führt, die den aktuellen Datenfluss stoppt und eine Berichtsdatei in einem Berichtsdatei-Designer erstellt, der die Benutzer überfordert. Ich weiß nichts über den RDLC-Designer und die Zuordnung von Datenquellen (ich bin bereit zu lernen (^ _ ^), aber ich kann meinem Team diese Lernanforderung nicht aufzwingen) und die Daten an den Bericht binden. Ich würde mich über funktionierende Codebeispiele freuen, wenn Ihre Hilfe Theorie enthält.Ich weiß, ReportViewer gibt es schon ziemlich lange. Wünschen Sie sich, dass eine Beispiellösung für die 1-1-Datenzuordnung zwischen Datenraster und ReportViewer in Zukunft für jemanden auf SO einfacher zu finden ist.

Hinweis Bitte lassen Sie mich wissen, ob zusätzliche Daten von meiner Seite in den Kommentaren erforderlich sind. Um die aktuelle Lösung anzuzeigen, musste ich eine RDLC-Datei erstellen, in die ich zur Entwurfszeit sowohl die Verbindungszeichenfolge als auch SQL einfügen musste, die ich in der gesuchten Lösung vermeiden möchte. Ich möchte eine Lösung finden, bei der die RDLC-Datei durch einen modularen Code generiert wird, der auch für andere Lösungen verwendet werden kann, anstatt sie für jedes Formular mit DataGrids zu entwerfen.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage