none
請問使用 Listview 的 insertcommand 取號的問題 RRS feed

  • 問題

  • 我在 SQL 中有寫了一個取號的函數 (例如 : 叫 usp_no)

    用在 ListView 的 SqlDataSource 的 InsertCommand 中 , 可以取號 (如:  insert a values(usp_no, name, input1 , result)

    但因為還有其他欄位需要將取到的號做加工後(如: 將該號與輸入的某個欄位值串接), 再存入另一欄位

    不知有那個事件的那個參數可以取到在 InsertCommand  中取到的號, 不會因多人使用而取到與InsertCommand不同的號

    以便可以處理串字, 再將串字於ItemInserting事件中指定給該欄位

    謝謝




    2017年1月25日 下午 03:28

解答

  • 您要先insert 那筆資料後,

    再下 Select 將那筆資料 取出來哦!

    • 已標示為解答 MIS110 2017年2月4日 上午 05:16
    2017年1月28日 上午 02:33
  • 有幾種可能的方式

    (1) 使用 Insert Trigger , 也就是你的 C# 只負責 Insert  usp_no, name, input1 ;至於 result 則由 Insert Trigger 負責去 update 他

    (2) 加入一個 GUID (SQL 中則是 Uniqueidentifier ) , 由 C# code 負責每次產出一個 GUID (因為這個重複的機率很低);依據此 GUID 來重新取得資料就可以


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    • 已標示為解答 MIS110 2017年2月4日 上午 05:16
    2017年2月1日 上午 06:18
  • 沒啊,

    第一個方法是 DB 端的,第二個方法是程式端的 (只是 DB 的 Table 要加個欄位)


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。


    • 已編輯 Bill ChungMVP 2017年2月1日 上午 07:56
    • 已標示為解答 MIS110 2017年2月4日 上午 05:16
    2017年2月1日 上午 07:56
  • 您可以先將資料放進table中,而那個 result 欄位是依 其他欄位來呈現,

    可以在 Select 出資料時,再組合出你要的內容。

    或是用 Computed Column 也可以哦!

    • 已標示為解答 MIS110 2017年2月4日 上午 05:16
    2017年2月1日 上午 08:30
  • 如果你的 ups_no 是由資料庫自己遞增的,在你沒有存進去之前,沒有辦法確定他的值是多少啊.


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。


    • 已編輯 Bill ChungMVP 2017年2月4日 上午 04:28
    • 已標示為解答 MIS110 2017年2月4日 上午 05:16
    2017年2月4日 上午 04:19

所有回覆

  • 您可以這樣寫:

    INSERT INTO myTable (col1, col2, col3, col4)
    SELECT usp_no(), name, input1, result

    2017年1月26日 上午 01:49
  • 您可以這樣寫:

    INSERT INTO myTable (col1, col2, col3, col4)
    SELECT usp_no(), name, input1, result

    不好意思, 我可能表達不夠清楚

    因為我是需要將取到的號碼, 先放入 myTable 內, 

    而且需要存入的與取出的為同一號碼


    2017年1月26日 上午 06:20
  • 您要先insert 那筆資料後,

    再下 Select 將那筆資料 取出來哦!

    • 已標示為解答 MIS110 2017年2月4日 上午 05:16
    2017年1月28日 上午 02:33
  • 您要先insert 那筆資料後,

    再下 Select 將那筆資料 取出來哦!

    可是我是要在 INSERT 那筆資料的時候, 把用 usp_no() 取得的值加工後, 同時存入該筆資料

    如: insert myTable values(usp_no, name, input1 , result) 中的 input1是來自某個使用者在某欄位的輸入值

    而 if (input1 >50){

     result=input1+usp_no() }

    else 

    {

     result=input1+"test" + usp_no() }

    那就無法用一個 insert 完成嗎 ?

    我本來是想說是否在 ItemInserting事件中執行 usp_no , 再用邏輯取得 result 的值

    但無法確定這樣  insert 進去時的 record 會是正確的

     

    2017年2月1日 上午 04:01
  • 有幾種可能的方式

    (1) 使用 Insert Trigger , 也就是你的 C# 只負責 Insert  usp_no, name, input1 ;至於 result 則由 Insert Trigger 負責去 update 他

    (2) 加入一個 GUID (SQL 中則是 Uniqueidentifier ) , 由 C# code 負責每次產出一個 GUID (因為這個重複的機率很低);依據此 GUID 來重新取得資料就可以


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    • 已標示為解答 MIS110 2017年2月4日 上午 05:16
    2017年2月1日 上午 06:18
  • 有幾種可能的方式

    (1) 使用 Insert Trigger , 也就是你的 C# 只負責 Insert  usp_no, name, input1 ;至於 result 則由 Insert Trigger 負責去 update 他

    (2) 加入一個 GUID (SQL 中則是 Uniqueidentifier ) , 由 C# code 負責每次產出一個 GUID (因為這個重複的機率很低);依據此 GUID 來重新取得資料就可以


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    感謝您的回覆, 所以只能在 DB 端做嗎 ? 謝謝
    2017年2月1日 上午 07:12
  • 沒啊,

    第一個方法是 DB 端的,第二個方法是程式端的 (只是 DB 的 Table 要加個欄位)


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。


    • 已編輯 Bill ChungMVP 2017年2月1日 上午 07:56
    • 已標示為解答 MIS110 2017年2月4日 上午 05:16
    2017年2月1日 上午 07:56
  • 您可以先將資料放進table中,而那個 result 欄位是依 其他欄位來呈現,

    可以在 Select 出資料時,再組合出你要的內容。

    或是用 Computed Column 也可以哦!

    • 已標示為解答 MIS110 2017年2月4日 上午 05:16
    2017年2月1日 上午 08:30
  • 感謝各位的回覆,

    所以總言之, 除了用 db trigger外 , 是一定要先存檔, 再取出嗎 ?


    2017年2月4日 上午 04:01
  • 如果你的 ups_no 是由資料庫自己遞增的,在你沒有存進去之前,沒有辦法確定他的值是多少啊.


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。


    • 已編輯 Bill ChungMVP 2017年2月4日 上午 04:28
    • 已標示為解答 MIS110 2017年2月4日 上午 05:16
    2017年2月4日 上午 04:19
  • Yes.

    table 異動才會去 trigger 它呀!

    2017年2月4日 上午 05:10