2019年4月11日 星期四

解決 sublime text 2 移除後 無法用新版 開啟檔案問題 (使用攜帶版 portable version)


解決 sublime text 2 移除後 無法用新版 開啟檔案問題  (使用攜帶版 portable version)


以系統管理身分叫出 cmd,

在 cmd下, 執行 regedit  ,叫出登入檔

找到以下路徑檔案 \HKEY_CLASSES_ROOT\Applications\sublime_text.exe\shell\open\command


改成正確的sublime text 3 執行檔路徑









2018年11月2日 星期五

[C#] string.Format 輸出格式

數字 + 千分位顯示,到小數點第5位,小數點位不補 0

string.Format("{0:#,##.#####}", double.Parse("1234.56"));  輸出:1,234.56

string.Format("{0:#,##.#####}", double.Parse("1,234,567.12345"));  輸出:1,234,567.12345

發現上述若輸入 0 會有問題,修改成下列

string.Format("{0:#,##0.#####}", double.Parse("0"));  輸出:0


前面加上 ' $ ' 錢字號

string.Format("{0:$#,##.#####}", double.Parse("1234.56"));  輸出:$1,234.56


參考來源點選這裡

2018年1月24日 星期三

[SQL] 以今日日期取得上個月1號日期

MSSQL語法:

取得上個月1號日期
SELECT dateadd(dd, -day(dateadd(month, -1, getdate()))+1, dateadd(month, -1, getdate()))

輸出:2017-12-01 12:13:25.617

在格式化成 yyyy/mm/dd  
SELECT convert(varchar, dateadd(dd, -day(dateadd(month, -1, getdate()))+1, dateadd(month, -1, getdate())), 111)

輸出:2017/12/01

-----------------------------------------------------------------------------------------------------------------------

Oracle語法:

取得上個月1號日期

SELECT to_date(to_char(add_months(SYSDATE, -1), 'YYYY-MM') || '-01', 'yyyy/mm/dd') from dual;

輸出:01-DEC-17

在格式化成 yyyy/mm/dd 

SELECT TO_CHAR(to_date(to_char(add_months(SYSDATE, -1), 'YYYY-MM') || '-01', 'yyyy/mm/dd'), 'yyyy/mm/dd') from dual;

輸出:2017/12/01

2018年1月22日 星期一

[jQuery] $.map 使用方式

需求:傳入日期,取出對應的匯率值 完整範例應用

2017年12月28日 星期四

[.Net] 解決 Update Panel 上 TextChanged 沒反應之方法

碰到問題:TextBox_TextChanged 事件,去呼叫 UserControl 中的 public function,頁面上的值沒有變動問題
後來發現是,UpdateMode 未設定為 Conditional

2017年4月19日 星期三

[Oracle] 判斷欄位是否為NULL的方法

SELECT NVL(欄位A, 欄位B or String) FROM TABLE

當欄位A為 NULL 時會填入 欄位B,或指定的字串

當使用 left join 時補資料也可以使用

PS:此語法為 Oracle 專用 MSSQL 不支援




2017年1月13日 星期五

[VirtualBox] 解決 VirtualBox VDI 的 UUID 重複問題


事由:公司電腦系統碟升級 SSD,所以想説把 Virtual Box 的 VDI file 從 D 給移動到 C 底下去

環境:VirtualBox 5.1.12

問題:直接搬移vid,從 D 搬到 C,再設定把C下的vid檔載入時,會發生 UUID 重複的訊息

解決方式:只要更換 UUID 就可以了,方式如下

開啟 cmd 到 virtualbox 的 program file目錄下

預設目錄是 C:\Program Files\Oracle\VirtualBox 後面直接下指令如下:

VBoxManage internalcommands sethduuid [vdi file 完整路徑]

若路徑中有空格 需加上雙引號,例如:"C:\windows 10\[檔案名稱].vdi"



2016年9月26日 星期一

[C#] Json 序列化與反序列化

2016年6月4日 星期六

[JavaScript] for 迴圈

2015年3月13日 星期五

[jQuery] jQuery ajax 使用方法 + 讀取時有 loading 圖示


jQuery ajax 的用法
url:要呼叫的 url
data:要傳的值,可以用 {a:"abc", b:"def"}
type:"POST",也可以用GET
dataType:"text",回傳的格式,如回傳是json 就為json
success:成功
error:失敗或錯誤
讀取資料時會有loading訊息要增加以下兩個參數
complete:請求完成時執行的函式(不論結果是success或error)。
beforeSend:發送請求之前會執行的函式。
一開始把loadingIMG設定為不可被看見(隱藏),當你按下 送出按鈕後,

他會去執行Submit()的函數。其後執行ajax的運作。

當他開始運作的時候,會先去執行beforeSend裡面的function,

這時會把loadingIMG顯示出來($('#loadingIMG').show();),

當執行完成之後,不論是成功或是有錯誤,

都會去執行complete,在去把loadingIMG隱藏起來

($('#loadingIMG').hide();)。

Loading 圖示可以從以下網站取得
http://ajaxload.info/
jquery ajax 文件 http://api.jquery.com/jquery.ajax/

2015年3月9日 星期一

[Javascript] 暫存網頁資料 localStorage 和 SessionStorage

如何用javascript 暫存資料,有下列兩個方式 localstorage 和 sessionstorage
localstorage 和 sessionstorage 差異如下:
localStorage:只要不去清除,那麼只要是在同一個瀏覽器就算新開一個tab也都可以再把資料取回來 
SessionStorage:只要關閉瀏覽器或者新開一個tab生命週期就結束了,也就無法取得資料了


資料來源:http://www.dotblogs.com.tw/richshangwei/archive/2014/12/18/147707.aspx

2014年10月22日 星期三

[Java] 如何讓字串前自動補上 0

如果需要一個固定長度的字串,例如從00000到99999,前面可以自動補0 ,修改"%05d" ,只須把5修改成所需要的長度
寫一個迴圈來驗證:

2013年9月12日 星期四

[Eclipse]記憶體調效

調整方式:修改Eclipse安裝目錄下的 eclipse.ini
-vmargs
-Xms128m
-Xmx512m
-XX:MaxPermSize=128m
-Dcom.sun.management.jmxremote
-XX:+UseParallelGC

單 cpu (沒 dual-core / ht 的) 可以加上 -XX:+UseSerialGC(這是 default)
有 HT / dual-code 可以用上 -XX:+UseParallelGC

參考來源

2013年5月17日 星期五

[Eclipse] 如合何在 eclipse 中比對兩個檔案內容

http://www.developria.com/2010/05/comparing-files-in-eclipse.html

說明如合何在 Eclipse 中比對兩個檔案內容

2012年11月26日 星期一

Microsoft SQL Server Driver for JDBC 發生 ResultSet can not re-read row data for column X 解决方法


問題發生的經過是,某天資料表須新增欄位,因為不確定長度要開多少,所以就先開
varchar(50),後來不夠又改成varchar(max)接著惡夢開使,所有服務一個接一個掛,讀資料庫接丟出以下例外訊息

Java.sql.SQLException: [Microsoft] [SQL Server 2000 JDBC Driver] ResultSet can not re-read row data for column X ( X = 1 ~ N )

Google了一下網路上的文章,才發現原來是JDBC驅動程式的問題。
微軟官方所提供的說明網頁:http://support.microsoft.com/kb/824106
第一種是,取資料時必須由資料表(Table)的最左邊一欄開始,
依序向右,例如我有id, name, passwd, comments等4個欄位,取資料的順序就只能:

rs.getString("name");
rs.getString("passwd");
rs.getString("comments");

而不能是:
rs.getString("name");
rs.getString("id");
rs.getString("passwd");
rs.getString("comments");

第二種是,此外同一筆資料的每個欄位,也只能被讀取一次,例如:
rs.getString("name");
rs.getString("name");
上述情況讀取了2次,就會出現錯誤。

處理方式可以用宣告變數存放:
String strId = rs.getString("id");
String strName = rs.getString("name");

可是我發現古人的程式都有以上這兩個問題,公司服務又2, 30個,改不完阿....冏
繼續Google

(1)如果采用jdbc-odbc驱动,那么就必须按照查询顺序来一次读取(不论有没有image或text类型)
(2)如果采用微软提供的ms sql server jdbc driver,如果查询语句中,不存在image或text类型字段,那么可以按照无序获取
(3)如果采用微软提供的ms sql server jdbc driver,如果查询语句中,存在image或text类型字段,那么就必须按照顺序读取,否则就会报告Driver]ResultSet can not re-read row data for column之类的错误
(4)如果想不查询语句中有没有image或text类型字段,都可以不按照顺序获取,或重复获取。

當我努力回想我到底改了什麼之後,才發現"如果查询语句中,存在image或text类型字段"
直覺覺的是我把varchar(50)改成varchar(max)關係,果然改回來就正常了.....冏到爆

網路上有人直接是建議改用JTDS


參考來源
http://www.wretch.cc/blog/weiyushen/9979951
http://www.ourys.com/post/ResultSet_can_not_re-read_row_data_for_column.html
http://android.blog.51cto.com/268543/49995

2012年9月12日 星期三

解決Viewport argument value "device-width;" for key "width" notrecognized. Content ignored.問題

在meta中設定viewport,使各裝置可以依照螢幕寬度自動調整
  <meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0" /> 
用chrome看會出現 Viewport argument value "device-width;" for key "width" not recognized. Content ignored. 研究了一下,解決辦法很簡單 只要將;(分號)改為,(逗號)即可
  <meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0" /> 
chrome就正常不會有error了

2012年7月20日 星期五

[DB] DB 欄位值是 NULL 判斷語法

資料庫中欄位值是 NULL

java 判斷語法為 a == null

以上以 ms sql 為例

2011年11月16日 星期三

[Java] 當IE遇到不明副檔名會直接開啟該檔案的解決方法

遇到狀況:當IE遇到不明副檔名會直接開啟該檔案,改成用OutputStream的方式


response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition", "attachment; filename="xxx.txt");

InputStream is = new FileInputStream("要下載檔案的Path");
OutputStream os = response.getOutputStream();

int n = 0;
byte[] ba = new byte[1024];

while((n = is.read(ba)) != -1){
os.write(ba, 0, n);
}

is.close();
out.flush();
out.close();

response.setStatus(response.SC_OK);
response.flushBuffer();

2011年7月25日 星期一

[Dom4j] 需要的 jar 檔

dom4j-1.6.1.jar

jaxen.jar

2011年4月27日 星期三

SVN错误

SVN错误

现场描述:在Eclipse客户端第一次连到SVN时,如:svn://192.168.1.5/data/svn,然后要求输入用户名和密码。如果用户名和密码输入出错了,强行确定后。问题来了!会出现,以下错误信息:org.tigris.subversion.javahl.ClientException

Authorization failed
然后,就算把原有的位置废弃掉,第二次再连接时,也是老样的错误。这个原因是第二次连接还是用第一次的用户名和密码,所以还是出现上面的错误。
解决方法:把C:\Documents and Settings\chris\Application Data\Subversion这个文件夹删掉,然后重新链接,再输入正确的用户名和密码。即可OK了!