将usercontrol添加到winform时出错

时间:2014-01-14 22:33:37

标签: c# winforms visual-studio user-controls

我正在尝试将usercontrol添加到我的winform中。当我尝试这样做时,我收到一个错误:

enter image description here

我尝试重新创建表单和用户控件,但错误不断出现。 真的很烦,因为我无法以这种方式继续我的项目..

我该如何解决这个问题?

编辑:我为usercontrol和form使用了各种不同的名称。另外,重新启动Visual Studio也无济于事。

EDIT2:

UcLeed包含以下代码:

public partial class ucLeed : UserControl
{
    ErrorProvider error = new ErrorProvider();
    DBLid DBlid = new DBLid();
    public ucLeed()
    {
        InitializeComponent();
        error.BlinkStyle = ErrorBlinkStyle.NeverBlink;
    }

    string lidID;

    public string LidID
    {
        get { return lidID; }
        set { lidID = value; }
    }

    public string Achternaam
    {
        get { return tbAchternaam.Text; }
        set { tbAchternaam.Text = value; }
    }

    public string Adres
    {
        get { return tbStraat.Text; }
        set { tbStraat.Text = value; }
    }

    public string Email
    {
        get { return tbEmail.Text; }
        set { tbEmail.Text = value; }
    }

    public string Geboortedatum
    {
        get { return tbGeboortedatum.Text; }
        set { tbGeboortedatum.Text = value; }
    }

    public string Gebruikersnaam
    {
        get { return tbGebruikersnaam.Text; }
        set { tbGebruikersnaam.Text = value; }
    }

    public string Voornaam
    {
        get { return tbVoornaam.Text; }
        set { tbVoornaam.Text = value; }
    }

    public string Wachtwoord
    {
        get { return tbPassword.Text; }
        set { tbPassword.Text = value; }
    }

    public string BevWachtwoord
    {
        get { return tbPassBev.Text; }
        set { tbPassBev.Text = value; }
    }

    public string Woonplaats
    {
        get { return tbWoonplaats.Text; }
        set { tbWoonplaats.Text = value; }
    }

    public string Postcode
    {
        get { return tbPostcode.Text; }
        set { tbPostcode.Text = value; }
    }

    private void CheckInput(CancelEventArgs e, TextBox tb)
    {

        if (string.IsNullOrEmpty(tb.Text))
        {
            error.SetError(tb, "*");
            e.Cancel = true;
        }

        if (!string.IsNullOrEmpty(tb.Text))
        {
            error.SetError(tb, String.Empty);
            error.Clear();
            error.Dispose();
        }
    }

    private void CheckIntInput(CancelEventArgs e, TextBox tb)
    {
        int integer;
        if (int.TryParse(tb.Text, out integer))
        {
            error.SetError(tb, String.Empty);
            error.Clear();
            error.Dispose();
        }
        else
        {
            MessageBox.Show("Je moet een getal invullen!");
            tb.Focus();
            error.SetError(tb, "*");
        }
    }

    private void CheckDateInput(CancelEventArgs e, TextBox tb)
    {
        string date = tb.Text;
        DateTime fromDateValue;
        var formats = new[] { "dd/MM/yyyy", "dd-MM-yyyy" };
        if (DateTime.TryParseExact(date, formats, CultureInfo.InvariantCulture, DateTimeStyles.None, out fromDateValue))
        {
            error.SetError(tb, String.Empty);
            error.Clear();
            error.Dispose();
        }
        else
        {
            MessageBox.Show("Je moet wel een datum invullen!");
            tb.Focus();
            error.SetError(tb, "*");
        }
    }

    private void ComparePasswords(CancelEventArgs e, MaskedTextBox tb, MaskedTextBox tb2)
    {
        if (tb.Text != tb2.Text)
        {
            MessageBox.Show("Je hebt niet het juiste wachtwoord bevestigd!");
            error.SetError(tb2, "*");
        }
        else
        {
            error.SetError(tb2, String.Empty);
            error.Clear();
            error.Dispose();
        }
    }

    private void tbVoornaam_Validating(object sender, CancelEventArgs e)
    {
        CheckInput(e, (TextBox)sender);
    }

    private void tbPassBev_Validating(object sender, CancelEventArgs e)
    {
        ComparePasswords(e, (MaskedTextBox)tbPassword, (MaskedTextBox)sender);
    }

    private void tbEmail_Validating(object sender, CancelEventArgs e)
    {
        try
        {
            var email = new MailAddress(tbEmail.Text);
            error.SetError(tbEmail, String.Empty);
            error.Clear();
            error.Dispose();
        }
        catch
        {
            MessageBox.Show("Verkeerde formaat email adres!");
            error.SetError(tbEmail, "*");
        }
    }

    private void tbGeboortedatum_Validating(object sender, CancelEventArgs e)
    {
        CheckDateInput(e, (TextBox)sender);
    }

    private void tbGebruikersnaam_Validating(object sender, CancelEventArgs e)
    {
        if (DBlid.CheckLid(tbGebruikersnaam.Text))
        {
            MessageBox.Show("Gebruikersnaam al in gebruik!");
            this.Focus();
            error.SetError(tbGebruikersnaam, "*");
        }
    }
}

Edit3:DBLid类的代码。

class DBLid
{
    DBChecks DBChecks = new DBChecks();

    bool querystatus = false;

    public bool Querystatus
    {
        get { return querystatus; }
        set { querystatus = value; }
    }
    string connectionString = ConfigurationManager.ConnectionStrings["Insomnia.Properties.Settings.dbInsomniaConnectionString"].ConnectionString;

    public DataTable GetLeden()
    {
        DataTable DT = new DataTable();
        SqlCommand cmd = new SqlCommand();
        SqlConnection conn = new SqlConnection(connectionString);
        cmd.Connection = conn;
        cmd.CommandText = "SELECT Lid.Id, Lid.Achternaam, Lid.Voornaam, Lid.Email, Lid.Adres, Lid.Woonplaats, Lid.Postcode, convert(varchar, Lid.Geboortedatum, 101) AS 'Geboorte Datum', Lid.GebruikersNaam AS Gebruikersnaam FROM Lid";
        SqlDataAdapter sda = new SqlDataAdapter(cmd);
        sda.Fill(DT);
        return DT;
    }

    public bool CheckLid(string gebruikersnaam)
    {
        bool inUse = false;
        SqlCommand cmd = new SqlCommand();
        SqlConnection conn = new SqlConnection(connectionString);
        cmd.Connection = conn;
        cmd.Parameters.AddWithValue("gebruikersnaam", gebruikersnaam);
        cmd.CommandText = "SELECT COUNT(Lid.ID) FROM Lid WHERE GebruikersNaam = @gebruikersnaam";
        try
        {
            conn.Open();
            if ((int)cmd.ExecuteScalar() == 1)
            {
                inUse = true;
            }
            else
            {
                inUse = false;
            }
        }

        catch
        {

        }
        finally
        {
            conn.Close();
        }

        return inUse;
    }

    public void AddLid(string achternaam, string adres, string email, string geboortedatum, string gebruikersnaam, string voornaam, string wachtwoord, string woonplaats, string postcode)
    {
        // Encrypt password
        string encryptedPassword = DBChecks.encryptPassword(wachtwoord);

        SqlCommand cmd = new SqlCommand();
        SqlConnection conn = new SqlConnection(connectionString);
        cmd.Connection = conn;

        cmd.Parameters.AddWithValue("achternaam", achternaam);
        cmd.Parameters.AddWithValue("adres", adres);
        cmd.Parameters.AddWithValue("email", email);
        cmd.Parameters.AddWithValue("geboortedatum", geboortedatum);
        cmd.Parameters.AddWithValue("gebruikersnaam", gebruikersnaam);
        cmd.Parameters.AddWithValue("voornaam", voornaam);
        cmd.Parameters.AddWithValue("woonplaats", woonplaats);
        cmd.Parameters.AddWithValue("postcode", postcode);
        cmd.Parameters.AddWithValue("wachtwoord", encryptedPassword);

        cmd.CommandText = "INSERT INTO Lid (Achternaam, Adres, Email, GeboorteDatum, GebruikersNaam, Voornaam, Wachtwoord, Woonplaats, Postcode) VALUES (@achternaam, @adres, @email, @geboortedatum, @gebruikersnaam, @voornaam, @wachtwoord, @woonplaats, @postcode); SELECT CONVERT(int, SCOPE_IDENTITY());";
        try
        {
            conn.Open();
            int lidID = (int)cmd.ExecuteScalar();
            MessageBox.Show("Het lid is toegevoegd met LidID: " + lidID);
            querystatus = true;
        }

        catch
        {
            MessageBox.Show("Oeps! Er ging iets mis!");
            querystatus = false;
        }
        finally {
            conn.Close();
        }
    }
}

Edit4:添加了DBChecks以供参考。

class DBChecks
{
    bool reserveerStatus;

    public bool ReserveerStatus
    {
        get { return reserveerStatus; }
        set { reserveerStatus = value; }
    }

    bool querystatus = false;

    public bool QueryStatus
    {
        get { return querystatus; }
        set { querystatus = value; }
    }
    int gameID;

    public int GameID
    {
        get { return gameID; }
        set { gameID = value; }
    }
    int boekID;

    public int BoekID
    {
        get { return boekID; }
        set { boekID = value; }
    }

    private int itemsoort;

    public int Itemsoort
    {
        get { return itemsoort; }
        set { itemsoort = value; }
    }

    string connectionString = ConfigurationManager.ConnectionStrings["Insomnia.Properties.Settings.dbInsomniaConnectionString"].ConnectionString;

    public string encryptPassword(string uncryptedPassword)
    {

        HashAlgorithm hash = new SHA256Managed();
        string salt = "UserName";

        // compute hash of the password prefixing password with the salt
        byte[] plainTextBytes = Encoding.UTF8.GetBytes(salt + uncryptedPassword);
        byte[] hashBytes = hash.ComputeHash(plainTextBytes);

        string hashValue = Convert.ToBase64String(hashBytes);
        return hashValue;

    }

    public bool ReserveringStatus(int itemID)
    {

        SqlConnection conn = new SqlConnection(connectionString);
        SqlCommand cmd = new SqlCommand();
        cmd.Parameters.AddWithValue("itemID", itemID);
        cmd.Connection = conn;
        cmd.CommandText = "SELECT ReserveerStatus FROM Item WHERE Id = @itemID";

        try
        {
            conn.Open();
            SqlDataReader sdr = cmd.ExecuteReader();

            while (sdr.Read())
            {
               reserveerStatus = (bool)sdr["ReserveerStatus"];
            }
        }

        catch
        {
            MessageBox.Show("Oeps! Er ging iets mis!");
        }

        finally
        {
            conn.Close();
        }

        return reserveerStatus;
    }

    public int CheckLid(int lidID)
    {
        int aantal = 0;
        SqlConnection conn = new SqlConnection(connectionString);
        SqlCommand cmd = new SqlCommand();
        cmd.Parameters.AddWithValue("lidID", lidID);
        cmd.Connection = conn;
        cmd.CommandText = "SELECT COUNT(*) AS Aantal FROM Lid WHERE Id = @lidID";

        try
        {
            conn.Open();
            SqlDataReader sdr = cmd.ExecuteReader();

            while (sdr.Read())
            {
                aantal = (int)sdr["Aantal"];
            }
        }

        catch
        {
            MessageBox.Show("Oeps! Er ging iets mis!");
        }

        finally
        {
            conn.Close();
        }
        return aantal;
    }
    public int CheckPas(int pasID) 
    {
        int aantal = 0;
        SqlConnection conn = new SqlConnection(connectionString);
        SqlCommand cmd = new SqlCommand();
        cmd.Parameters.AddWithValue("pasID", pasID);
        cmd.Connection = conn;
        cmd.CommandText = "SELECT COUNT(*) AS Aantal FROM Pas WHERE Id = @pasID";

        try
        {
            conn.Open();
            SqlDataReader sdr = cmd.ExecuteReader();

            while (sdr.Read())
            {
                aantal = (int)sdr["Aantal"];
            }                
        }

        catch
        {
            MessageBox.Show("Oeps! Er ging iets mis!");
        }

        finally
        {
            conn.Close();
        }
        return aantal;
    }

    public void CheckSoort(int itemID)
    {
        // Variable declaration
        string soort = "";
        List<Boek> boek = new List<Boek>();
        SqlConnection conn = new SqlConnection(connectionString);
        SqlCommand cmd = new SqlCommand();

        // Check if ItemID is boek or game
        cmd.Parameters.AddWithValue("itemID", itemID);
        cmd.Connection = conn;
        cmd.CommandText = "SELECT Soort FROM Item WHERE ID = @itemID;";

        // Retrieve data
        // Try-catch-final to catch wrong itemID error
        try
        {
            conn.Open();
            SqlDataReader sdr = cmd.ExecuteReader();

            while (sdr.Read())
            {
                soort = sdr["Soort"].ToString();
            }

            if (soort == "Boek")
            {
                itemsoort = 1;
            }
            if (soort == "Game")
            {

                itemsoort = 2;
            }

            if (soort == "")
            {
                itemsoort = 3;
                MessageBox.Show("Dit ID bestaat niet!");

            }
        }
        catch
        {
            MessageBox.Show("Oeps! Er ging iets mis!");
        }
        finally
        {
            conn.Close();
        }

    }

    public bool CheckStatus(int itemID)
    {
        // Variables 
        bool itemStatus = true;
        SqlConnection conn = new SqlConnection(connectionString);
        SqlCommand cmd = new SqlCommand();
        cmd.Parameters.AddWithValue("itemID", itemID);

        // Method           
        cmd.Connection = conn;
        cmd.CommandText = "SELECT Status FROM Item WHERE Item.Id = @itemID;";

        try
        {
            conn.Open();
            SqlDataReader sdr = cmd.ExecuteReader();
            while (sdr.Read())
            {
                itemStatus = (bool)sdr["Status"];
            }
        }

        catch
        {
            MessageBox.Show("Oeps! Er ging iets mis!");
        }
        finally
        {

            conn.Close();
        }
        return itemStatus;

    }

    public List<Game> ShowGame(int itemID)
    {
        // Variable declaration
        List<Game> gameList = new List<Game>();
        SqlConnection conn = new SqlConnection(connectionString);
        SqlCommand cmd = new SqlCommand();
        cmd.Parameters.AddWithValue("itemID", itemID);

        // Retrieve data
        cmd.Connection = conn;
        cmd.CommandText = "SELECT Game.*, Item.*, convert(varchar, Item.DvU, 101) AS DatumVUitgave, Platform.Soort as Platform, Media.soort as Media, GameGenre.Genre AS Genre FROM Game LEFT JOIN ITEM ON Item.ID = Game.itemID LEFT JOIN Media ON Game.MediaID = Media.Id LEFT JOIN Platform ON Game.PlatformID = Platform.Id LEFT JOIN GameGenre ON Game.GameGenreID = GameGenre.Id WHERE Game.itemID = @itemID;";

        try
        {
            conn.Open();
            SqlDataReader sdr = cmd.ExecuteReader();
            while (sdr.Read())
            {
                gameList.Add(new Game() { Titel = sdr["Titel"].ToString(), Dvu = sdr["DatumVUitgave"].ToString(), Genre = sdr["Genre"].ToString(), Media = sdr["Media"].ToString(), Pegi = sdr["PEGI"].ToString(), Platform = sdr["Platform"].ToString(), EAN = sdr["EAN"].ToString(), Uitgever = sdr["Uitgever"].ToString() });
            }

        }

        catch (FormatException e)
        {
            MessageBox.Show(e.Message);
        }

        catch
        {
            MessageBox.Show("Oeps! Er ging iets mis!");
        }



        finally
        {
            conn.Close();
        }

        return gameList;
    }

    public List<Boek> ShowBoek(int itemID)
    {
        // Variable declaration
        List<Boek> boekList = new List<Boek>();
        SqlConnection conn = new SqlConnection(connectionString);
        SqlCommand cmd = new SqlCommand();
        cmd.Parameters.AddWithValue("itemID", itemID);

        // Retrieve data
        cmd.Connection = conn;
        cmd.CommandText = "SELECT Boek.*, Item.*, convert(varchar, Item.DvU, 101) AS DatumVUitgave, Auteur.Auteur AS Auteur, BoekGenre.Genre AS Genre, Bindwijze.Soort as Bindwijze, Taal.Taal AS Taal FROM Boek LEFT JOIN Item ON Boek.ItemID = Item.Id LEFT JOIN Bindwijze ON Boek.BindwijzeID = Bindwijze.ID LEFT JOIN BoekGenre ON Boek.BoekGenreID = BoekGenre.Id LEFT JOIN Auteur on Boek.AuteurID = Auteur.Id LEFT JOIN Taal ON Boek.TaalID = Taal.Id WHERE Boek.ItemID = @itemID;";

        try
        {
            conn.Open();
            SqlDataReader sdr = cmd.ExecuteReader();
            while (sdr.Read())
            {
                // Fill boek with retrieved item(s)
                boekList.Add(new Boek() { Auteur = sdr["Auteur"].ToString(), Genre = sdr["Genre"].ToString(), Dvu = sdr["DatumVUitgave"].ToString(), ISBN101 = sdr["ISBN10"].ToString(), ISBN131 = sdr["ISBN13"].ToString(), Paginas = sdr["AantalPagina"].ToString(), Taal = sdr["Taal"].ToString(), Titel = sdr["Titel"].ToString(), Bindwijze = sdr["Bindwijze"].ToString(), Uitgever = sdr["Uitgever"].ToString() });
            }

        }

        catch (FormatException e)
        {
            MessageBox.Show(e.Message);
        }

        catch
        {
            MessageBox.Show("Oeps! Er ging iets mis!");
        }


        finally
        {
            conn.Close();
        }

        return boekList;
    }
}

2 个答案:

答案 0 :(得分:2)

尝试将string lidID;更改为string lidID = "";,可能bool reserveerStatus;更改为bool reserveerStatus = false;

答案 1 :(得分:0)

好的,我还是不知道怎么样或为什么;但如果我从ucLeed中删除代码,我可以将控件拖放到我的表单上。

不确定如何或为什么,但这是我将要弄清楚的事情!