我正在尝试通过SQL
在我的webform
数据库的表格中插入新行。
问题是我需要将DateTime
值放在送货员分配完成时的描述中。
但是因为该值是一个字符串,并且要求显示类似"Received parcel by StationMgrSG on 19 July 2016 10:34am"
的内容,但我的代码显示的内容如此"在@ TimeNow&#34上由StationMgrSG收到包裹;
如何更改值以显示日期和时间?
这是我的代码:
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;
}
答案 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()
方法中指定DateFormat。那么@TimeNow
将如下所示:
string formatString="dd-MMMM-yyyy HH:mm"
cmad.Parameters.AddWithValue("@TimeNow","Received parcel by StationMgrSG on " + DHCreateTime.ToString(formatString));
答案 1 :(得分: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'作为字符串文字的一部分而不是参数。
答案 2 :(得分: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);
希望它有所帮助。