Hallo zusammne,
bin noch neuling was das Thema C# angeht. Mache gerade erst meine zweiten schritte in dieser Welt. 🙂
ich habe ein Tool, das Daten aus einer MS SQL Datenbank zieht. Läuft auch soweit.
Die neue anforderung ist jetzt, das eine CSV Datei vom benutzer zur laufzeit hochgeladen wird. Der User wählt dann aus welche infoas er aus der SQL DB zusätzlich zu den einträgen benötigt.
(Möchte vermeiden, das die CSV erst in dei MSSQL Datenbak importiert wird, da die Daten danach nicht mehr benötigt werden.)
Mein lösungsansatz ist:
Habe ein DataSet (MyDataSet). In diesem gibt es jetzt z.B. die Tabellen "SQL_Daten" und "CSV_Tabele. Die Tabellen werden auch wie gewünscht gefüllt
Ein abruf aller Daten der jeweilligen Tabelle ist möglich:
dataGridView1.DataSource = myDataSet.Tables["SQL_Daten"];
dataGridView2.DataSource = myDataSet.Tables["CSV_Tabele"];
Wie bekomem ich es jetzt hin, das ich die Daten via SQL-Selct abrufe bzw. wie muss der ConnectString aussehen?.
SqlConnection con = new SqlConnection("Data Source=localhost; Initial Catalog=MyDataSet;Integrated Security=True");
string strQuery = "SELECT * FROM SQL_Daten INNER JOIN CSV_Tabele ON SQL_Daten.ID = CSV_Tabele.ID Group by Name"
SqlDataAdapter da = new SqlDataAdapter(strQuery, con);
DataTable dt = new DataTable();
da.Fill(dt);
dataGridView1.DataSource = dt;
Egal wie ich es versuche, bekomme immer die Meldung:
Fehlermeldung:
System.Data.SqlClient.SqlException: "Netzwerkbezogener oder instanzspezifischer Fehler beim Herstellen einer Verbindung mit SQL Server.
Da hast du wohl etwas komplett falsch verstanden.
Der Sql Client ist dazu da die DataTable vom MS SqlServer her zu befüllen, du kannst damit nicht in der DataTable suchen.
Bisher wurden ja auch nur Daten aus MS SQL selektiert.
Wie könnte ich das jetzt machen, wenn ich zei unterschiedliche Datenquellen habe???
Der User soll später 3 auswahlmöglichkeiten haben, welche SQL Daten er benötigt.
Ich möchte vermeiden, das ich die CSV erst in die MSSQL zu importiere.
Dass Du Daten direkt ins UI lädst, ist ja auch eher so ne Tool-Sache; in richtigen Anwendungen macht man sowas nicht.
Normalerweise hast eine Datenschicht, und darin kannst dann Daten aus verschiedenen Quellen mergen.
[Artikel] Drei-Schichten-Architektur
Die UI interessiert nicht, woher Daten kommen.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code