2012-08-06 54 views
0

转换日期和/或时间当我尝试运行此代码,我收到此错误:错误时从字符串

conversion failed when converting date and/or time from character string 

我就在这行错误:

g_muallak_tarihi = DateTime.Parse(row_muallakt["Muallak_tarihi"].ToString()); 

要存储既是日期和时间也是仅日期的值,我使用DateTime数据类型。我不知道该怎么做。你有什么想法?

这是我的代码:

public void cs_hmuallak() 
{ 
    string cs_hmuallak = null; 
    SqlConnection cnn; 

    cs_hmuallak = @"Data Source= .\SQLEXPRESS; Initial Catalog=mydb;Integrated Security= True"; 

    cnn = new SqlConnection(cs_hmuallak); 

    try 
    { 
     cnn.Open(); 

     { 
       SqlDataAdapter da_muallakt = new SqlDataAdapter("SELECT M.Muallak_tutari FROM Muallak M INNER JOIN Hasar H ON M.Hasar_no= H.Hasar_no INNER JOIN Police P ON p.Police_no=h.Police_no where p.Acenta_kodu='"+cbx_acenta.Text+"' and p.Brans_kodu='"+cbx_brans.Text+"' and M.muallak_tarihi<=(Select M.muallak_tarihi from muallak M where M.muallak_tarihi=(select max(muallak_tarihi) from muallak where muallak_tarihi<[email protected])) and M.Muallak_tarihi=(SELECT max(M.Muallak_tarihi) FROM Muallak M INNER JOIN Hasar H ON M.Hasar_no= H.Hasar_no INNER JOIN Police P ON p.Police_no=h.Police_no where p.Acenta_kodu='"+cbx_acenta.Text+"' and p.Brans_kodu='"+cbx_brans.Text+"' and M.muallak_tarihi<=(Select M.muallak_tarihi from muallak M where M.muallak_tarihi=(select max(muallak_tarihi) from muallak where muallak_tarihi<[email protected]))) ", cnn); 

       da_muallakt.SelectCommand.Parameters.AddWithValue("@parameter",g_listetarihi.ToString("yyyy-mm-dd")); 
       DataTable table_muallakt = new DataTable(); 
       da_muallakt.Fill(table_muallakt); 
       foreach (DataRow row_muallakt in table_muallakt.Rows) 
       { 
        if (row_muallakt["Muallak_tutari"] != DBNull.Value) 
        { 
         if (row_muallakt["Muallak_tarihi"] != DBNull.Value) 
         { 
          g_muallak_tarihi = DateTime.Parse(row_muallakt["Muallak_tarihi"].ToString()); 
          g_muallak_tutari = int.Parse(row_muallakt["Muallak_tutari"].ToString()); 
         } 
        } 
       }     
     } 
    } 
    catch (Exception ex) 
    { 
     MessageBox.Show(ex.ToString()); 
    } 
}  
+1

“g_muallak_tarihi”的数据类型是什么? – 2012-08-06 09:13:41

+0

如何定义数据库中的列?如果它们被定义为日期,则使用Convert.ToDateTime()而不是试图解析 – 2012-08-06 09:14:52

+0

什么* DateTime * row_muallakt [“Muallak_tarihi”]的格式值。 – adatapost 2012-08-06 09:15:31

回答

2

假设Muallak_tarihi被定义为DATETIME柱(其是就像它所持有的那样),所有这些工作都转化为从字符串是不需要的。

你可以简单地用数据读取器直接使用GetDateTime为了得到它,或者简单地把价值:

g_muallak_tarihi = row_muallakt["Muallak_tarihi"] as DateTime; 

此外,您所使用的参数(@parameter)应DATETIME - 直接通过,而不是使用ToString

da_muallakt.SelectCommand.Parameters.AddWithValue("@parameter",g_listetarihi);