- Не удалось преобразовать значение параметра из строки в дату-время.
В настоящее время я получаю эту ошибку при попытке выбрать дату из выпадающего списка, как только дата выбрана, она должна отображать данные в виде сетки в зависимости от значения выпадающего списка. Это достигается с помощью оператора 'Where', равного значению выбранного индекса.
Я понимаю, что это проблема с тем, как даты отображаются в выпадающем списке, а не с тем, как они сохраняются в базе данных. Поэтому я попытался поменять формат с dd/mm/yyyy на yyyy/mm/dd в выпадающем списке, чтобы посмотреть, исправит ли это проблему. Но я никак не могу заставить его работать.
Пожалуйста, может ли кто-нибудь порекомендовать исправить это?
Выпадающем списке выбрано изменение индекса с# :
protected void DropDownList2_SelectedIndexChanged(object sener, EventArgs e) { String query = "SELECT Stock_Take.Username, Item.ItemID, Item.ItemDesc, Stock_Take_Item.BarQuantity, Stock_Take_Item.StorageQuantity, Stock_Take.StockTakeIDNew FROM Item INNER JOIN Stock_Take_Item ON Item.ItemID = Stock_Take_Item.ItemID INNER JOIN Stock_Take ON Stock_Take_Item.StockTakeIDNew = Stock_Take.StockTakeIDNew where Stock_Take.Username = @USER AND Stock_Take.StockDate = @DATE"; SqlConnection con = new SqlConnection(@"Data Source=(local)\;Initial Catalog=SmallBatch;Integrated Security=True;"); con.Open(); SqlCommand cmd = new SqlCommand(query, con); cmd.Parameters.Add("@USER", SqlDbType.VarChar).Value = DropDownList1.SelectedValue; cmd.Parameters.Add("@DATE", SqlDbType.DateTime).Value = DropDownList2.SelectedValue; // DateTime date = Convert.ToDateTime(DropDownList2.SelectedValue.ToString()); SqlDataReader reader = cmd.ExecuteReader(); GridView1.DataSource = reader; GridView1.DataBind(); con.Close(); }
Привязка дат из базы данных к выпадающему списку кода C# :
private void BindDropDownList2(String field) { DataTable dataTable = new DataTable(); SqlConnection con = new SqlConnection(@"Data Source=(local)\;Initial Catalog=SmallBatch;Integrated Security=True;"); try { con.Open(); String Query = "Select StockDate, StockTakeIDNEW from Stock_Take WHERE Username = @Value1"; SqlCommand sqlCmd = new SqlCommand(Query, con); sqlCmd.Parameters.AddWithValue("@Value1", field); SqlDataAdapter sqlDa = new SqlDataAdapter(sqlCmd); sqlDa.Fill(dataTable); if (dataTable.Rows.Count > 0) { DropDownList2.DataSource = dataTable; DropDownList2.DataTextField = "StockDate"; DropDownList2.DataValueField = "StockTakeIDNew"; // DropDownList2.DataTextFormatString = "(yyyy/MM/dd}"; DropDownList2.DataBind(); } } catch (System.Data.SqlClient.SqlException ex) { string msg = "Fetch Error"; msg += ex.Message; throw new Exception(msg); } finally { con.Close(); } }
Что я уже пробовал:
*У меня также есть еще один выпадающий список, из которого пользователь выбирает имя пользователя, что, в свою очередь, влияет на то, какие даты отображаются в выпадающем списке 2
j snooze
А ты пробовал
УМК.Параметры.Добавить("@дата", значения sqldbtype.Типа datetime).Значение = Конвертировать.Датавремя(DropDownList2.SelectedValue)
Member 13771716
К сожалению, возвращает ту же ошибку.