2012-10-13 30 views
0

我的對象WDst,WDet,SATst,SATet是包含文本框中的時間值的DATETIME類對象。當對象數據類型是c中的DateTime時,如何在sql server中只存儲時間

所有的起始時間和結束在我的SP的時間參數是數據類型時間(7) 如何使用DateTime對象

我用下面的代碼在我的數據的基礎上以插入一個時間表:

public void AddSchedule() 
{ 
connect = DAL.Con; 
    SqlCommand com = new SqlCommand(); 
    com.Connection = connect; 
    com.CommandType = CommandType.StoredProcedure; 
    com.CommandText = "AddSchedule"; 
    SqlParameter parameters = new SqlParameter(); 
    com.Parameters.Add(new SqlParameter("SchedName",SqlDbType.VarChar)).Value=Schedulename; 
    com.Parameters.Add(new SqlParameter("startTime",SqlDbType.Time)).Value=WDst; 
    com.Parameters.Add(new SqlParameter("endTime",SqlDbType.Time)).Value=WDet; 
    com.Parameters.Add(new SqlParameter("SatStartTime", SqlDbType.Time)).Value=SATst; 
    com.Parameters.Add(new SqlParameter("SatEndTime", SqlDbType.Time)).Value=SATet; 
    connect.Open(); 
    com.ExecuteNonQuery(); 
    connect.Close(); 
} 

Com.ExecuteNonQuery發生錯誤...我的存儲過程沒有任何問題。

我怎麼只能保存時間從已保存的時間值我的日期時間對象如下:

protected void SaveSched_Click(object sender, EventArgs e) 
{ 
    Schedule obj = new Schedule(); 
    obj.Schedulename = SchedName.Text; 
    obj.WDst = Convert.ToDateTime(StartTime.Text); 
    obj.WDet = Convert.ToDateTime(EndTime.Text); 
    obj.SATst = Convert.ToDateTime(SatSt.Text); 
    obj.SATet = Convert.ToDateTime(SatEt.Text); 
    obj.AddSchedule(); 
} 

回答

1

嘗試

com.Parameters.Add(
      new SqlParameter("startTime",SqlDbType.Time)).Value = 
           WDet.ToString("HH:mm:ss"); 
+0

如果我使用:com.Parameters.Add(新的SqlParameter (「startTime」,SqlDbType.Time))。Value = WDet.ToString(「HH:mm」); –

2

我的最好的辦法是,你必須使用toString()方法,爲您的日期時間自定義格式對象。並將其作爲字符串而不是DateTime對象傳遞給數據庫。

看到此URL,自定義格式的DateTime對象:http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx

例如:

DateTime now = DateTime.Now; 
now.ToString("yyyy-MM-dd HH:mm:ss"); //Outputs 2012-10-13 20:40:35 
now.ToString("HH:mm:ss"); //Will then output 20:40:35 
相關問題