2016-07-19 7 views
1

webformによって、SQLデータベースのテーブルに新しい行を挿入しようとしています。CのExecuteNonQueryのSQLステートメント

問題は、deliverymanの割り当てが完了したときの説明にDateTimeの値を配置する必要があることです。

しかし、値が文字列で、要件は、この"Received parcel by StationMgrSG on 19 July 2016 10:34am"のようなものを表示することですが、私のコードので、そのように私は値を変更するにはどうすればよい

をこの「@TimeNow上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; 
    } 

答えて

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意志は次のようになります:あなたはちょうどこのラインに

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

を変更する必要が

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

このデータのDBにDateTime列がある場合はさらに優れています。 –

0

問題は、あなたが渡しているである '@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) –

関連する問題