Никак не могу решить проблему с конверсией. В БД значение столбцов : date и time, использую DateTimePicker в WinForms и создаю новые переменные в которые записываю только дату и только время, передаю в запрос и ошибка Conversion failed .... Ошибка в строке string Query и SqlCommand comAdd = new SqlComman(Query, con); Название ошибки в заголовке
SqlConnection con = new SqlConnection(ConnectionString);
con.Open();
string StartTime = HLStartTime.Value.Hour.ToString() + "-" + HLStartTime.Value.Minute.ToString() + "-" + HLStartTime.Value.Second.ToString();
//string StartTime = HLStartTime.Value.ToString("hh-mm-ss");
string FinishTime = HLFinishTime.Value.Hour.ToString() + "-" + HLFinishTime.Value.Minute.ToString() + "-" + HLFinishTime.Value.Second.ToString();
//string FinishTime = HLFinishTime.Value.ToString("hh-mm-ss");
string Date = DateOfOpening.Value.Year.ToString() + "-" + DateOfOpening.Value.Month.ToString() + "-" + DateOfOpening.Value.Day.ToString();
//string Date = DateOfOpening.Value.ToString("yyyy-MM-dd");
string Query = "INSERT INTO Hotlines (Name, Work_start_time, Work_end_time, Date_of_opening) VALUES('" + HotLineName.Text.ToString() + "', '" + StartTime + "', '" + FinishTime + "', '" + Date + "')";
SqlCommand comAdd = new SqlCommand(Query, con);
comAdd.ExecuteNonQuery();
MessageBox.Show("Hot line added");
con.Close();
Во первых абсолютно верно - используйте параметризированные запросы. А во вторых - какой тип у этих work_start_time, work_end_time и т.д. в самой бд? если там тип datetime, timestamp, а вы пытаетесь ей пихать string, она и скажет ошибку конвертации.
У меня нет сейчас студии под рукой, но это всё должно выглядеть как-то так:
using (SqlConnection connection = new SqlConnection(Connection))
{
connection.Open();
string sql = "INSERT INTO Hotlines (Name, Work_start_time, Work_end_time, Date_of_opening) VALUES(@Name, @Work_start_time, @Work_end_time, @Date_of_opening)";
using (SqlCommand cmd = new SqlCommand(sql, connection))
{
cmd.Parameters.AddWithValue("@Name", DbType.String).Value = HotLineName.Text;
cmd.Parameters.AddWithValue("@Work_start_time", DbType.Time).Value = HLStartTime.Value;
cmd.Parameters.AddWithValue("@Work_end_time", DbType.Time).Value = HLFinishTime.Value;
cmd.Parameters.AddWithValue("@Date_of_opening", DbType.Date).Value = DateOfOpening.Value;
cmd.CommandType = CommandType.Text;
cmd.ExecuteNonQuery();
}
}
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости