Я передаю параметры сохраненной процедуре. Параметры кодового блока на стороне ASP.NET представляет:Сообщение об ошибке DateTime: Ошибка конверсии при преобразовании даты и времени из строки символов
SqlConnection con = new SqlConnection(strConn);
string sqlItemSearch = "usp_Item_Search";
SqlCommand cmdItemSearch = new SqlCommand(sqlItemSearch, con);
cmdItemSearch.CommandType = CommandType.StoredProcedure;
cmdItemSearch.Parameters.Add(new SqlParameter("@Item_Num", SqlDbType.VarChar, 30));
cmdItemSearch.Parameters["@Item_Num"].Value = txtItemNumber.Text.Trim();
cmdItemSearch.Parameters.Add(new SqlParameter("@Search_Type", SqlDbType.Int));
cmdItemSearch.Parameters["@Search_Type"].Value = ddlSearchType.SelectedItem.Value;
cmdItemSearch.Parameters.Add(new SqlParameter("@Vendor_Num", SqlDbType.VarChar, 10));
cmdItemSearch.Parameters["@Vendor_Num"].Value = txtVendorNumber.Text.Trim();
cmdItemSearch.Parameters.Add(new SqlParameter("@Search_User_ID", SqlDbType.Int));
cmdItemSearch.Parameters["@Search_User_ID"].Value = ddlSeachUser.SelectedItem.Value;
if (!string.IsNullOrEmpty(txtStartDate.Text))
{
cmdItemSearch.Parameters.Add(new SqlParameter("@StartDate", SqlDbType.DateTime));
cmdItemSearch.Parameters["@StartDate"].Value = Convert.ToDateTime(txtStartDate.Text.Trim());
}
else
{
cmdItemSearch.Parameters.Add(new SqlParameter("@StartDate", SqlDbType.DateTime));
cmdItemSearch.Parameters["@StartDate"].Value = Convert.ToDateTime("01/01/1996");
}
if (!string.IsNullOrEmpty(txtEndDate.Text))
{
cmdItemSearch.Parameters.Add(new SqlParameter("@EndDate", SqlDbType.DateTime));
cmdItemSearch.Parameters["@EndDate"].Value = Convert.ToDateTime(txtEndDate.Text.Trim());
}
else
{
cmdItemSearch.Parameters.Add(new SqlParameter("@EndDate", SqlDbType.DateTime));
cmdItemSearch.Parameters["@EndDate"].Value = Convert.ToDateTime(DateTime.Now);
}
con.Open();
SqlDataAdapter ada = new SqlDataAdapter(cmdItemSearch);
DataSet ds = new DataSet();
ada.Fill(ds);
gvSearchResults.DataSource = ds;
gvSearchResults.DataBind();
Я попытался с помощью
DateTime.ParseExact (this.Text, "DD/MM/YYYY", NULL);
но я получаю ту же ошибку. Параметр corressponding в SQL - DateTime. В настоящее время я пропускаю пустые поля для @StartDate и @EndDate, поэтому значения по умолчанию передаются как параметры. Ошибка возникает на линии ada.Fill (ds). Что может вызвать ошибку?
Возможный дубликат [String не был признан действительным форматом DateTime «dd/MM/yyyy»] (http://stackoverflow.com/questions/2193012/string-was-not-recognized-as-a- valid-datetime-format-dd-mm-yyyy) – ChrisF
попробовал «DateTime.ParseExact», но все равно получал ту же ошибку :-( – DotNetRookie