C#中的ExecuteNonQuery的SQL语句

时间:2016-07-19 02:37:21

标签: c# sql sql-server executenonquery

我正在尝试通过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;
    }

3 个答案:

答案 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);

希望它有所帮助。