2017-01-10 6 views
0

Meine Methode wird nicht von meiner Anwendung aufgerufen. Ich habe Breakpoints verwendet und es wurde nie im Code initiiert. Ich baue ein C# Windows Forms-Anwendung einer Azure-Datenbank verwenden, aber die Datagridview wird nie gefüllt wird weder der Code überhaupt ... Ich noooo Ahnung gerufen habe auch immer, warum ..Methode wird nicht von Anwendung aufgerufen

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Windows.Forms; 
using System.Data.SqlClient; 
using System.Configuration; 

namespace MyWinFormsProj 
{ 
    public partial class CompanyForm : Form 
{ 
    public CompanyForm() 
    { 
     InitializeComponent(); 
    } 
    //Connection String 
    string cs = ConfigurationManager.ConnectionStrings 
    ["MyConnetion"].ConnectionString; 

    // Load all employees 
    private void dataEmployees_Load() 
    { 
     using (SqlConnection con = new SqlConnection(cs)) 
     { 
      con.Open(); 
      SqlCommand cmd = new SqlCommand 
      (
       "Select fname,ename FROM dbo.Users", con 
      ); 
      SqlDataReader dr = cmd.ExecuteReader(); 
      DataTable dt = new DataTable(); 
      dt.Load(dr); 
      dataEmployees.DataSource = dt; 
     } 
    } 

    // Crate company 
    private void createCompany_Click_1(object sender, EventArgs e) 
    { 
     if (textBoxCompanyName.Text == "") 
     { 
      MessageBox.Show("Fill out information"); 
      return; 
     } 
     using (SqlConnection con = new SqlConnection(cs)) 
     { 
      //Create SqlConnection 
      con.Open(); 
      SqlCommand cmd = new SqlCommand(
      "insert into dbo.Company (companyName) 
      values(@companyName)", con); 
      cmd.Parameters.AddWithValue(
      "@companyName", textBoxCompanyName.Text); 
      SqlDataAdapter adapt = new SqlDataAdapter(cmd); 
      MessageBox.Show("Grattis! Du har skapat ett företag"); 

      } 
     } 
     } 
    } 

Die zweite Methode funktioniert und das tut, was es tun soll, aber das erste heißt nie ..

+4

Ihr Code enthält keinen Aufruf dieser Methode. – stuartd

+0

Wo haben Sie diese Methode aufgerufen? Vielleicht einen Aufruf in den Konstruktor? – user3685285

+0

Ich sehe nirgendwo in Ihrem Code, wo die Methode aufgerufen wird. Ist die Methode dataEmployees_Load an Ereignisse im Formular angehängt? Wenn dies der Fall ist, überprüfen Sie den Code in InitializeComponent(), um sicherzustellen, dass er korrekt ist. –

Antwort

1

Sie einen Event-Handler auf dem Gridview onLoad und übergeben diese Methode, um den Handler

public void GridView_OnLoad(object sender, EventArgs e) 
{ 
    dataEmployees_Load(); 
} 
1

festlegen müssen Sie müssen Ihre Methodensignatur folgendermaßen anpassen:

private void dataEmployees_Load(object sender, EventArgs e) 

Dann in Ihrem GirdView, müssen Sie für Ereignis "onload" diese Funktion als Handler setzen:

OnLoad="dataEmployees_Load" 
0

Danke Jungs für Ihre Antworten es meine geholfen, das Problem zu lösen. Wie du gesagt hast, war das Problem, dass die Methode nicht aufgerufen wurde. Also habe ich es direkt auf initiiliazeComponent aufgerufen.

public partial class CompanyForm : Form 
{ 
    public CompanyForm() 
    { 
     InitializeComponent(); 
     Load += new EventHandler(dataEmployees_Load); //Added this code 
    } 
    // Load all employees 
    private void dataEmployees_Load(object sender, EventArgs e) 
    { 
     using (SqlConnection con = new SqlConnection(cs)) 
     { 
      con.Open(); 
      SqlCommand cmd = new SqlCommand 
      (
       "Select fname,ename FROM dbo.Users", con 
      ); 
      SqlDataReader dr = cmd.ExecuteReader(); 
      DataTable dt = new DataTable(); 
      dt.Load(dr); 
      dataEmployees.DataSource = dt; 
     } 
    } 
+0

Gut, dass Antworten geholfen haben. Anyways, ich bin mehr verwendet, um den Event-Handler in der ASPX statt in den Code hinter :) Grüße hinzufügen! –

Verwandte Themen