2010-10-29 53 views
3

基本上我有一個非常簡單的插入語句這C#與INSERT存儲過程 r n問題

INSERT INTO [dbo].[ORDER] 
    (ORDER_DATE 
    ,ORDER_TYPE_ID 
    ,PAYMENT_STATUS_ID 
    ,TOTAL_COST 
    ,SENDER_NAME 
    ,SENDER_EMAIL 
    ,SENDER_MESSAGE 
    ,RECIPIENT_NAME 
    ,RECIPIENT_ADDRESS) 
VALUES 
    (@ORDER_DATE 
    ,@ORDER_TYPE_ID 
    ,@PAYMENT_STATUS_ID 
    ,@TOTAL_COST 
    ,@SENDER_NAME 
    ,@SENDER_EMAIL 
    ,@SENDER_MESSAGE 
    ,@RECIPIENT_NAME 
    ,@RECIPIENT_ADDRESS) 

在C#代碼的地址輸入:

Database db = DatabaseFactory.CreateDatabase(); 
DbCommand cmd = db.GetStoredProcCommand("sp_ORDER_INSERT"); 

db.AddInParameter(cmd, "@ORDER_DATE", DbType.DateTime, this._orderDate); 
db.AddInParameter(cmd, "@ORDER_TYPE_ID", DbType.Int32, this._typeOfOrder.OrderTypeId); 
db.AddInParameter(cmd, "@PAYMENT_STATUS_ID", DbType.Int32, this._statusOfPayment.PaymentStatusId); 
db.AddInParameter(cmd, "@TOTAL_COST", DbType.Decimal, this._totalCost); 
db.AddInParameter(cmd, "@SENDER_NAME", DbType.String, this._senderName); 
db.AddInParameter(cmd, "@SENDER_EMAIL", DbType.String, this.SenderEmail); 
db.AddInParameter(cmd, "@SENDER_MESSAGE", DbType.String, this._senderMessage); 
db.AddInParameter(cmd, "@RECIPIENT_NAME", DbType.String, this._recipientName); 
db.AddInParameter(cmd, "@RECIPIENT_ADDRESS", DbType.String, this._recipientAddress); 

this._orderId = Convert.ToInt32(db.ExecuteScalar(cmd));    
cmd.Dispose(); 

中的價值this._recipientAddress是一個字符串"address line 1 \r\naddress line2\r\n\r\naddressline3"

無論如何,當我插入到SQL它刪除了'\ r \ n',我不想它,因爲這將在稍後顯示,我希望線bre AKS。

的RECIPIENT_ADDRESS數據庫列是n文字

任何人有什麼想法?

回答

1

"address line 1 \r\naddress line2\r\n\r\naddressline3"

在SQL是:

SELECT 'address line 1 ' + CHAR(13) + CHAR(10) 
      + 'address line2' + CHAR(13) + CHAR(10) 
      + CHAR(13) + CHAR(10) 
      + 'addressline3' 
1

基本上它的工作,但是當結果窗格中設置網格顯示在SQL Management Studio中沒有顯示,需要將其設置爲顯示在文本中。

當我在C#中進行選擇時,查看\ r \ n仍然在數據中的數據。 (13)+ CHAR(10)被自動添加到數據庫中,但它們在網格視圖中不可見,就好像你做了'SELECT CHAR(13)+ CHAR(10)',你什麼也得不到。

乾杯球員

0

可以簡單地取代那些 '\ n' 和 '\ r' 在存儲過程中

INSERT INTO [DBO]。[訂購] (ORDER_DATE ,ORDER_TYPE_ID ,PAYMENT_STATUS_ID ,TOTAL_COST ,SENDER_NAME ,SENDER_EMAIL ,SENDER_MESSAGE ,RECIPIENT_NAME ,RECIPIENT_ADDRESS) VALUES (@ORDER_DATE ,@ ORDER_TYPE_ID ,@ PAYMENT_STATUS_ID ,@ TOTAL_COST ,@ SENDER_NAME ,@ SENDER_EMAIL ,@ SENDER_MESSAGE ,@ RECIPIENT_NAME ,REPLACE(REPLACE(@RECIPIENT_ADDRESS, '\ r',CHAR(13),「\ n ',CHAR(10))