在插入時應考慮創建DateTime
對象和參數以防止出現錯誤數據。
int hour = int.Parse(DropDownListHz.SelectedValue);
int minute = int.Parse(DropDownListMz.SelectedValue);
DateTime dt = CalendarDz.SelectedDate;
dt.AddHours(hour);
dt.AddMinutes(minutes);
cmd.CommandText = "insert into Milniky (datetime) values (@dt)";
cmd.Parameters.Add(new SqlParameter("@dt", dt.ToString("yyyy-MM-dd HH:mm:ss")));
您可能還需要使用DateTime.TryParse(s)
提供更好的用戶體驗
但是在特定的命令,我懷疑你需要一個空間和一個冒號添加到語句來連接的日期。
目前你的命令看起來像是在創建類似2013-3-28130
的東西,你想要的東西就像2013-3-28 1:30
。
cmd.CommandText = "insert into Milniky (datetime) values ('" + CalendarDz.SelectedDate.ToString("MM/dd/yyyy") + " " + DropDownListHz + ":" + DropDownListMz +"')";
您是否調試過101並打印出命令以查看它試圖發送給SQL Server的內容?你能告訴我們嗎? –
查看SQL查詢不應該像這樣通過字符串連接構建的事實...在構建它之後,查詢的實際字符串值是多少?我們無法從這裏看到類似'DropDownListMz'的運行時值。 – David
一般來說,在數據庫中使用潛在的保留關鍵字作爲列名也不是一個好主意。你可以通過用方括號('[datetime]')將它明確地定義爲一個對象名,但是仍然可以避免使用這個名字。畢竟,這個名稱甚至沒有傳達它代表的內容,只是它所擁有的數據類型。 – David