Home Forums SQL Server 7,2000 Globalization The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value. RE: The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value.

  • A hint for future projects and implementations...

    Don't create dynamic SQL statements containing values in your font end. This enables SQL injection and causes problems as your current. Use parameterized statements and you cannot run into those problems.

    ///=======================================================

    // WRONG WAY

    using (SqlConnection cn = new SqlConnection("MyConnectionString"))

    {

    cn.Open();

    string statement = "INSERT INTO MyTable (Id, MyDateColumn) VALUES (1, '06/24/2009')";

    using (SqlCommand cmd = new SqlCommand(statement, cn))

    {

    cmd.ExecuteNonQuery();

    }

    }

    ///=======================================================

    // CORRECT WAY

    using (SqlConnection cn = new SqlConnection("MyConnectionString"))

    {

    cn.Open();

    string statement = "INSERT INTO MyTable (Id, MyDateColumn) VALUES (@Id, @MyDate)";

    using (SqlCommand cmd = new SqlCommand(statement, cn))

    {

    SqlParameter paramId = cmd.Parameters.Add("@Id", SqlDbType.Int);

    SqlParameter paramMyDate = cmd.Parameters.Add("@MyDate", SqlDbType.DateTime);

    paramId.Value = 1;

    paramMyDate.Value = DateTime.Now;

    cmd.ExecuteNonQuery();

    }

    }

    Flo