Die GUI einer Windows Form Application aus einr MySql Datenbank befüllen


krokev

Mitglied
aha okay danke
Code:
private void fillMyRichTextBox()
        {
            String mySqlCmd = "SELECT visitor_database.last_name FROM visitation CROSS JOIN visitor_database ";
            String connectionString = "SERVER=dautsql01; DATABASE=Visitors.dbo";
            DataAccess.SetConString(connectionString);
            DataTable dataTable = DataAccess.ExecuteQuery(mySqlCmd);

            if (dataTable != null)
            {
                for (int index = 0; index < dataTable.Rows.Count; index++)
                {
                    addTextToRichTextBox(dataTable.Rows[index]["last_name"].ToString());
                }
            }
        }

        public void button1_Click(object sender, EventArgs e)
        {
            fillMyRichTextBox(); 
        }



        private void addTextToRichTextBox(String text)
        {
            testtextbox.Text = text + "\r\n" + testtextbox.Text; // \r\n für eine neue Zeile
        }

        private void testtextbox(object sender, EventArgs e)
        {

        }

Wen ich das jetzt allerdings so eifüge bekomme ich die Fehlermeldungen:
1: Der Typ "visitor_management_2011.Form1" enthält bereits eine Definition für "testtextbox".
2: Mehrdeutigkeit zwischen "visitor_management_2011.Form1.testtextbox" und "visitor_management_2011.Form1.testtextbox(object, System.EventArgs)".

Ist bestimmpt nur eine Kleinigkeit aber ich komme selber einfach nicht drauf

LG und danke nochmals
 
V

VScan

Guten Morgen,

anstatt der "testtextbox" muss natürlich der Name des RichTextBox-Objekts da rein!

Den Namen weis ich leider nicht aber ich gehe davon aus, dass es der Standard is und ungefär so lauten müsste: richTextBox1


Der Compiler meckert natürlich, da Du ein paar Zeilen darunter eine Definition von einer Methode hast, die genauso heisst, inklusive Parameter, das mag er dann nicht, weil ein Methodenaufruf in der Regel anders aussieht als -> testtextbox.Text. (aber es gibt Ausnahmen bei anonymen Methodendeklarationen oder Delegaten) <- Viel Spass beim Nachschlagen!
 
Zuletzt bearbeitet von einem Moderator:

krokev

Mitglied
testtextbox ist der name der Textbox den habe ich geändert also sollte es doch mit diesem funktionieren oder?

Ein paar Details haben sich gedrade bezüglich meiner Datenbankanbindung geändert und hetz würde ich gerne wissen wo jetz mein Fehler ligt weil ich keine Connetion habe und keine Fehlermeldung (catch) bekommen
DATAACCESS Klasse neu:

Code:
 class DataAccess
    {
        public static string connectionString;

 public static void SetConString(string conString)
        {
            
                connectionString = "SERVER=DAUTSQL01.fremont.lamrc.net" +
                                    "Database=Visitors" +
                                    "User ID=VisitorDB" + "Password=test";

                connectionString = conString;
        }
public static DataTable ExecuteQuery(string sql)
        {
            try
            {
                SqlConnection connection = new SqlConnection(connectionString);
                SqlDataAdapter SQLAdapter = new SqlDataAdapter(sql, connection);
                SqlCommandBuilder commandbuilder = new SqlCommandBuilder(SQLAdapter);
                DataTable ds = new DataTable();
                connection.Open();
                SQLAdapter.Fill(ds);
                return ds;
            }

            catch (Exception e)
            {
                Console.WriteLine("Error while trying to connect to database: ");
                return null;
            }
           
        }

 public static int ExecuteNonQuery(string sql)
        {
            
            SqlConnection connection = new SqlConnection(connectionString);
            
            try
            {               
                connection.ConnectionString = connectionString;
                connection.Open();
                SqlCommand command = new SqlCommand(sql, connection);
                return command.ExecuteNonQuery();
            }
            catch (Exception e)
            {
                Console.WriteLine("Error while trying to connect to database: ");
                return 1; 
            }
            finally
            {
                connection.Close();
            }
             
        }
        

        public static bool HasRecords(DataTable datatable)
        {
            return datatable != null && datatable.Rows.Count > 0 ? true : false;
        }

Aufruf in der Form:
Code:
  public partial class Form1 : Form
    {

        public Form1()
        {
            InitializeComponent();
            this.Load += new EventHandler(Form1_Load_1);
        }

        private void stripmenu_filtern_Click(object sender, EventArgs e)
        {
        }


        public void Form1_Load_1(object sender, EventArgs e)
           {
               try
               {
                   DataAccess.SetConString("SERVER=DAUTSQL01.fremont.lamrc.net" +
                                        "Database=Visitors" +
                                        "User ID=VisitorDB" + "Password=test");
                   DataAccess.ExecuteQuery("SERVER=DAUTSQL01.fremont.lamrc.net" +
                                        "Database=Visitors" +
                                        "User ID=VisitorDB" + "Password=test");
                   DataAccess.ExecuteNonQuery("SERVER=DAUTSQL01.fremont.lamrc.net" +
                                       "Database=Visitors" +
                                       "User ID=VisitorDB" + "Password=test");
               }
               catch
               {
                   Console.WriteLine("Error while trying to connect to database: ");
               }
              
            }
 
Zuletzt bearbeitet:
V

VScan

Hallo krokev,

Ein paar Details haben sich gedrade bezüglich meiner Datenbankanbindung geändert und hetz würde ich gerne wissen wo jetz mein Fehler ligt weil ich keine Connetion habe und keine Fehlermeldung (catch) bekommen

Lösung: Den eventuell entstandenen Fehler ausgeben, sonst kommt immer nur "Error while trying to...";
Schau Dir bitte den Catch-Block GENAU an, dann fällt Dir auf, dass ich es in meinem Beispiel nicht so gepostet hab.

Beispiel von krokev:
C#:
            catch (Exception e)
            {
                Console.WriteLine("Error while trying to connect to database: ");
                return null;
            }

Beispiel von VScan:
C#:
catch (Exception e)
            {
                Console.WriteLine("Error while trying to connect to database: " + e.Message() + "\r\n
                                   Stacktrace: " + e.StackTrace());
                return null;
            }


Folgendes kann auch nicht funktionieren:

C#:
DataAccess.ExecuteQuery("SERVER=DAUTSQL01.fremont.lamrc.net" +
                                        "Database=Visitors" +
                                        "User ID=VisitorDB" + "Password=test");
                   DataAccess.ExecuteNonQuery("SERVER=DAUTSQL01.fremont.lamrc.net" +
                                       "Database=Visitors" +
                                       "User ID=VisitorDB" + "Password=test");

Grund: Die Methoden ExecuteQuery/ExecuteNonQuery führen Abfragen(Selects) aus, sie setzen nicht den connectionString.
 
Zuletzt bearbeitet von einem Moderator:

Forum-Statistiken

Themen
272.356
Beiträge
1.558.615
Mitglieder
187.831
Neuestes Mitglied
gorke