Hallo,
die Gesamtkonstruktion gefällt mir überhaupt nicht; deshalb will ich über konkrete Änderungsvorschläge zu Deinem Code nicht nachdenken.
1. Nach "if (connection != null)" fehlen höchstwahrscheinlich Klammern {...}.
2. Alle drei Sql-Variablen gehören nur nach zerfassen_Click in der Art, wie ich es in meinem Link vorgemacht habe. Auch die Deklaration hat nichts im Formular zu suchen!
3. verbinden_Click und trennen_Click können ersatzlos gestrichen werden, weil das zwangsläufig Bestandteil von zerfassen_Click ist. (Übrigens sorgt der DbDataAdapter automatisch für Open und Close. Nur wenn wie bei Deinem PRINT-Befehl mehrere DbCommands verbunden werden, ist ein manuelles Öffnen und Schließen sinnvoll.)
4. Lediglich die string-Variable strCon kann und darf "global" im Formular zur Verfügung gestellt werden. (In der Praxis darf das Passwort natürlich nicht im Code verankert werden, da gibt es viele Alternativen. Aber zurzeit ist das eine akzeptable Notlösung.)
5. Vor allem DataGridView, aber auch DataSet gehören mit Deklaration und Konstruktor-Aufruf ins Formular, dazu fehlt immer noch this.Controls.Add(dgv).
6. mycommand braucht einen richtigen SQL-Befehl wie "SELECT ID, Name FROM Adressen". Wenn SQLSTATEMENT als Platzhalter dafür steht, dann ersetze das am besten durch eine string-Variable, damit das deutlicher wird.
7. Ist "PRINT" ein SQL-Befehl, den MS-SQL versteht? Dann ist es OK, andernfalls nicht verständlich.
8. Von der Variablen "ergebnis" eines DataGrid oder DataGridView (bitte entscheide Dich, was Du benutzen willst, meine Empfehlung ist DataGridView) sehe ich nichts. Bei Dir ist es der Name der Tabelle (und zwar nicht die Bezeichnung einer Variablen, sondern wirklich der Tabellenname).
Nebenbei: Bei DB-Exceptions liefert ex.ToString() in der Regel bessere Informationen als ex.Message. Console-Ausgaben passen eigentlich nicht in eine WinForms-Anwendung; dafür sollte eher eine MultiLine-TextBox verwendet werden. Und Du solltest auch
NET: Richtlinien für Namen bei Gelegenheit durchlesen und beachten; der denglische Mischmasch "zerfassen_Click" ist doch sehr schrecklich.
Trotzdem viel Erfolg! Jürgen