La conversion d'un type de données varchar à un type de données datetime entraîné dans une plage de valeur d'erreur

La conversion d'un type de données varchar à un type de données datetime entraîné dans une plage de valeur d'erreur

Je suis en train de saisir des données dans ma table à l'aide d'un formulaire, les formats de date à la fois la validation du formulaire et sql server sont les deux dd/mm/yy, cependant lorsque j'essaie d'envoyer des données à partir de la forme avec un jour de plus de 12 (par exemple, 13/12/2012), il déclenche une exception dont la cause est "La conversion d'un type de données varchar à un type de données datetime entraîné dans une plage de valeur de l'erreur", et si j'essaie de saisir des données dans la forme mm/jj/aa format il est dit: "mauvais format de date" qui est supposé signifie que le jj/mm/aa format est le format correct

voici le code de mon formulaire ci-dessous:

    private void btnAddProject_Click(object sender, EventArgs e)
    {
        DateTime startDate;
        DateTime endDate;

        if (txtProjectName.Text == "") //client side validation
        {
            MessageBox.Show("Enter Project Name");
            return;
        }

        try
        {
            startDate = DateTime.Parse(txtProjectStart.Text);
            endDate = DateTime.Parse(txtProjectEnd.Text);
        }
        catch (Exception)
        {
            MessageBox.Show("Wrong Date Format");
            return;
        }
        fa.CreateProject(txtProjectName.Text, startDate, endDate, (int)cbCustomers.SelectedValue, ptsUser.Id);
        txtProjectName.Text = "";
        txtProjectStart.Text = "";
        txtProjectEnd.Text = "";
        cbCustomers.SelectedIndex = 0;
        MessageBox.Show("Project Created");
        adminControl.SelectTab(2);
    }//end btnAddProject

Et c'est le code dans mon DAO:

public void CreateProject(string name, DateTime startDate, DateTime endDate, int customerId, int administratorId)
    {
        string sql;
        SqlConnection cn;
        SqlCommand cmd;
        Guid projectId = Guid.NewGuid();

        sql = "INSERT INTO Project (ProjectId, Name, ExpectedStartDate, ExpectedEndDate, CustomerId, AdministratorId)";
        sql += String.Format("VALUES('{0}', '{1}', '{2}', '{3}', {4}, {5})", projectId, name, startDate, endDate, customerId, administratorId);

        cn = new SqlConnection(Properties.Settings.Default.WM75ConnectionString);
        cmd = new SqlCommand(sql, cn);

        try
        {
            cn.Open();
            cmd.ExecuteNonQuery();
        }
        catch (SqlException ex)
        {
            throw new Exception("Error Creating Project", ex);
        }
        finally
        {
            cn.Close();
        }

    }//end CreateProject Method

C'est mon code pour mon façade:

public void CreateProject(string name, DateTime startDate, DateTime endDate, int customerId, int administratorId)
    {
        dao.CreateProject(name, startDate, endDate, customerId, administratorId);
    }//end CreateProject

OriginalL'auteur Aaron Mohammed | 2012-09-12