You shouldn't do this way.
always try the parameterized way.
like : cmd.Parameters.AddWithValue("@datecreation", Convert.ToDateTime(datecreation));
Check here:
The conversion of a varchar data type to a datetime data type resulted in an out-of-range value error
You could do something like this:
using(SqlConnection conn = new SqlConnection("Connectionstring"))
using (SqlCommand cmd = new SqlCommand())
{
string sql = "insert into Usertable ";
sql += "values(@mVendid, @usrname, @usrpass, @datecreation, @createdby)";
cmd.CommandText = sql;
cmd.Parameters.AddWithValue("@mVendid", mVendid);
cmd.Parameters.AddWithValue("@usrname", username);
cmd.Parameters.AddWithValue("@usrpass", userpass);
cmd.Parameters.AddWithValue("@datecreation", Convert.ToDateTime(datecreation));
cmd.Parameters.AddWithValue("@createdby", createdby);
cmd.Connection = conn;
conn.Open();
cmd.ExecuteNonQuery();
}
Just change this as per your code.