C_Sharp 板


LINE

抱歉因為才殊學淺 不太懂這是哪個範疇的問題 若以下太多贅述請見諒 我們打算用winform在一個開發已久的舊系統上 加上一個記錄client端行為的功能 類似於clinet端至server查詢資料一次 我們就要在server上記錄每個client的使用者名稱 以及他們查了什麼資料 用的是三層式的網路架構 也就是clinet端安裝我們的應用程式 透過dll連到server端去執行功能 目前連線程式是共用的 所有class及method及變數等等都宣告為static (所以要新加任何東西都只能用static) 先假定Client呼叫的方式為ServerClass.QueryData(Sql, Connection , ClientInfo) 為了不修改到前端程式 我們也不能增減QueryData的參數 而我們取得client端資訊的方式主要是透過ClientInfo這個參數 這個變數在進到QueryData後 會被存在一個全域的static變數中 供其他function使用 (真正記錄查詢資料的是另一個function, 且這個function不能直接被QueryData呼叫) ClientInfo的class內容大約可以簡略如下: class ClientInfo { public string UserID { get { return GetUserID(); } set { SetUserID(value); } } public string UserName { get { return GetUserName(); } set { SetUserName(value); } } ..... // 還有一堆其他client相關資訊 } 我們的想法是 因為目前client程式端呼叫前會先把UserID和UserName這些變數指定好 我們只要在共用的ServerClass.QueryData把這個資訊取出來存就好了 但因為server是同一台的關係 若兩個以上clint同時在server執行QueryData ClientInfo裡面的資料會有互相覆蓋的情況!! 就像是假設UserID_A查詢了A資料 然後UserID_B查詢了B資料 分開執行時會正常紀錄為: UserID_A DataA UserID_B DataB 但若同時執行,有可能變成: UserID_A DataA UserID_A DataB 或 UserID_B DataA UserID_B DataB 也就是沒辦法正確的記錄UserA和UserB存取了什麼資料 我們有想過會不會是變數都是static 會一直被蓋掉 但我們的function又只能宣告static 不知道是否有人有其他解法 來防止互蓋的情況呢 --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.128.153.200 ※ 編輯: nanaon 來自: 140.128.153.200 (05/01 15:01) ※ 編輯: nanaon 來自: 140.128.153.200 (05/01 15:12)
1F:→ Abbee:我不知道你資料結構是什麼,我也是用static的DataTable記,沒 05/01 20:18
2F:→ Abbee:此問題 05/01 20:18
3F:推 shawnlian:在查詢資料的func需要再比對當前的clientinfo是誰。 05/02 16:11
4F:推 Litfal:client還好,但你不該在Server用static存放資料,除非你確 05/11 14:36
5F:→ Litfal:定是要共用的。 05/11 14:36
6F:→ Litfal:另外修改Server端的運算給Instance應該沒關係吧... 05/11 14:38







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Gossiping站內搜尋

TOP