将短日期插入sql数据库

时间:2013-12-20 02:49:20

标签: c# sql-server-2008-r2

将参数掩码文本框值(shortDate)插入sql server 2008有错误'无法将字符串识别为日期'我的代码:

cmd.Parameters.Add("@dilivery_date", SqlDbType.Date).Value = 
Convert.ToDateTime(recievedDateTxt.Text).ToShortDateString();

3 个答案:

答案 0 :(得分:1)

不要使用ToShortDateString,因为您要设置SqlDbType.Date,您可以直接设置DateTime值,如下所示

cmd.Parameters.Add("@dilivery_date", SqlDbType.Date).Value = 
Convert.ToDateTime(recievedDateTxt.Text);

如果您有输入日期时间的格式,最好使用DateTime.TryParseExact

DateTime result;
if (DateTime.TryParseExact(
    recievedDateTxt.Text,           // The string you want to parse
    "dd/MM/yyyy",                   // The format of the string you want to parse.
    CultureInfo.InvariantCulture,   // The culture that was used
                                    // to create the date/time notation
    DateTimeStyles.None,            // Extra flags that control what assumptions
                                    // the parser can make, and where whitespace
                                    // may occur that is ignored.
    out result))                    // Where the parsed result is stored.
{
       // your other codes 
       cmd.Parameters.Add("@dilivery_date", SqlDbType.Date).Value = result; 
}

答案 1 :(得分:0)

您可以使用TryParseExact()方法

试试这个:如果你的dateformat是:dd/MM/yyyy

 DateTime result;
 DateTime.TryParseExact(recievedDateTxt.Text,"dd/MM/yyyy",CultureInfo.InvariantCulture,DateTimeStyles.None,out result)
 { 
   cmd.Parameters.Add("@dilivery_date", SqlDbType.Date).Value =result;            
 }

答案 2 :(得分:0)

您是否尝试过使用此方法?我正在使用这种方法。


try
           {
               using (SqlConnection con = new SqlConnection(ConnectionSetting.SQLDBConnectionString()))
               {
                   con.Open();
                   using (SqlCommand com = new SqlCommand("spName", con))
                   {
                       com.CommandType = CommandType.StoredProcedure;
                       com.Parameters.Add(new SqlParameter("@dilivery_date", Convert.ToDateTime(recievedDateTxt.Text)));
                       using (SqlDataAdapter da = new SqlDataAdapter())
                       {
                           da.SelectCommand = com;
                           da.Fill(dtResult);
                       }

                   }

               }

               return dtResult;

           }
           catch (Exception)
           {

               throw;
           }