2016-07-19 94 views
1

我正試圖通過webform將一行插入到SQL數據庫中的一個表中。C#中ExecuteNonQuery的SQL語句

問題是我需要將DateTime的值放在Deliveryman分配完成時的描述中。

但是因爲該值是一個字符串,要求是顯示這樣的事情"Received parcel by StationMgrSG on 19 July 2016 10:34am"但我的代碼是「由StationMgrSG上@TimeNow收到包裹」

顯示這樣的事情如何更改值,以便它顯示日期和時間?

這是我的代碼:

public int updateDeliveryHistory() 
    { 

     string strConn = ConfigurationManager.ConnectionStrings["NPCSConnectionString"].ToString(); 

     SqlConnection conn = new SqlConnection(strConn); 

     SqlCommand cmad = new SqlCommand("INSERT INTO DELIVERYHISTORY(ParcelID, Description) VALUES (@ParcelId,'Received parcel by StationMgrSG on @TimeNow')",conn); 

     cmad.Parameters.AddWithValue("@ParcelId", parcelID); 
     cmad.Parameters.AddWithValue("@TimeNow", DHCreateTime); 

     conn.Open(); 

     cmad.ExecuteNonQuery(); 

     conn.Close(); 

     return 0; 
    } 

回答

2

要做到這一點,你必須修改這樣的代碼:

SqlCommand cmad = new SqlCommand("INSERT INTO DELIVERYHISTORY(ParcelID, Description) VALUES (@ParcelId, @TimeNow)",conn); 
cmad.Parameters.AddWithValue("@ParcelId", parcelID); 
cmad.Parameters.AddWithValue("@TimeNow","Received parcel by StationMgrSG on " + DHCreateTime.ToString()); 

附加說明,您可以指定.ToString()方法,如果裏面的日期格式需要。那麼@TimeNow將如下所示:

string formatString="dd-MMMM-yyyy HH:mm" 
cmad.Parameters.AddWithValue("@TimeNow","Received parcel by StationMgrSG on " + DHCreateTime.ToString(formatString)); 
+0

如果您在此數據的數據庫中有DateTime列,效果會更好。 –

0

你只需要改變這一行

SqlCommand cmad = new SqlCommand("INSERT INTO DELIVERYHISTORY(ParcelID, Description) VALUES (@ParcelId,'Received parcel by StationMgrSG on @TimeNow')",conn); 

SqlCommand cmad = new SqlCommand("INSERT INTO DELIVERYHISTORY(ParcelID, Description) VALUES (@ParcelId,'Received parcel by StationMgrSG on ' + @TimeNow)",conn); 

的問題是你傳遞 '@TimeNow' 作爲部分字符串文字而不是參數。

0

做這樣的:

string getDate = DateTime.Now.ToString("MMMM dd yyyy hh:mmtt"); 

SqlCommand cmad = new SqlCommand("INSERT INTO DELIVERYHISTORY(ParcelID, Description) VALUES (@ParcelId,'Received parcel by StationMgrSG on ' + getDate)",conn); 

cmad.Parameters.AddWithValue("@ParcelId", parcelID); 
cmad.Parameters.AddWithValue("@TimeNow", getDate); 

希望它能幫助。

+0

謹慎格式化代碼 –

+0

謝謝你,我只是新成員在這裏,並試圖幫助一些.. –

+0

這就是爲什麼,我告訴你格式化你的代碼,而不是向下投票的職位。 [這將幫助你發佈很好的答案](http://stackoverflow.com/help/how-to-answer) –