在A裡面透過建立一個事件,將 ChangePageSizeBySelect 讓 default.aspx能夠抓到事件,
讓default.aspx能夠抓到值,然後將值丟給B,做dropdownlist的databind
A.ascx.vb(裡面的dropdownlist 一定要做autopost back)
Public Property GetUC() As String
Get
GetUC = DropDownList1.SelectedValue
End Get
Set (value As String)
DropDownList1.SelectedValue = value
End Set
End Property
Public Delegate Sub UserControlEventHandler (ByVal sender As Object , ByVal str As String )
Public Event ChangePageSizeBySelect As UserControlEventHandler
Protected Sub DropDownList1_SelectedIndexChanged( ByVal sender As Object, ByVal e As System.EventArgs ) Handles DropDownList1.SelectedIndexChanged
RaiseEvent ChangePageSizeBySelect(Me , DropDownList1.SelectedValue)
End Sub
Default.aspx.vb
Protected Sub order_mainCus_code_ChangePageSizeBySelect(sender As Object , str As String ) Handles order_mainCus_code.ChangePageSizeBySelect
order_mainDiscus_customer.GetUC() = order_mainCus_code.GetUC()
End Sub
B.ascx.vb
Public Property GetUC() As String
Get
GetUC = DropDownList1.SelectedValue
End Get
Set (value As String)
Dim conn = New SqlConnection
Dim cmd As SqlCommand
Dim adapter As New SqlDataAdapter
Dim ds As New DataSet
Dim dt As New DataTable
Dim SqlString As String
conn.ConnectionString = System.Web.Configuration.WebConfigurationManager .ConnectionStrings( "ConnectionString").ConnectionString() '使用web config
SqlString = "select * from discus_customer where cus_code='" & value & "'"
'Label1.Text = SqlString
adapter = New SqlDataAdapter (SqlString, conn)
adapter.Fill(ds, "Discus_customer" )
DropDownList1.DataValueField = "discus_code"
DropDownList1.DataTextField = "discus_name"
DropDownList1.DataSource = ds.Tables( "Discus_customer" ).DefaultView
DropDownList1.DataBind()
Label1.Text = SqlString
End Set
End Property
2013年12月9日 星期一
2013年11月29日 星期五
VS2010 使用 CrystalReport 發生控制項錯誤
從SAP下載完後安裝CrystalReport,
建完報表後,要拉Viewer顯示內容,
卻發現不管怎麼拉,都會發生『建立控制項發生錯誤』。
或者是發生『'CrystalReportViewer' 在命名空間 'CrystalDecisions.Web' 中模稜兩可』
到Webconfig裡面尋找
看到這一段
再來到aspx看前面幾行,會看到
<%@ Register assembly="CrystalDecisions.Web, Version=10.5.3700.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" namespace="CrystalDecisions.Web" tagprefix="CR" %>
建完報表後,要拉Viewer顯示內容,
卻發現不管怎麼拉,都會發生『建立控制項發生錯誤』。
或者是發生『'CrystalReportViewer' 在命名空間 'CrystalDecisions.Web' 中模稜兩可』
到Webconfig裡面尋找
看到這一段
<assemblies>
<add assembly="System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
<add assembly="System.Web.Extensions.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="CrystalDecisions.CrystalReports.Engine, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/>
<add assembly="CrystalDecisions.ReportSource, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/>
<add assembly="CrystalDecisions.Shared, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/>
<add assembly="CrystalDecisions.Web, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/>
<add assembly="CrystalDecisions.ReportAppServer.ClientDoc, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/>
</assemblies>
先取得version的編號,再來到aspx看前面幾行,會看到
<%@ Register assembly="CrystalDecisions.Web, Version=10.5.3700.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" namespace="CrystalDecisions.Web" tagprefix="CR" %>
他的version是10.5.3700.0 將他改成 13.0.2000.0 就正常了...
2013年10月15日 星期二
VB.net 播放音效(懶人包)
一.加入資源
- 在 [方案總管] 中選取專案之後,請在 [專案] 功能表上,按一下 [屬性]。
- 請選取 [資源] 索引標籤。
- 在 [資源設計工具] 工具列上,指向 [加入資源],按一下箭頭,然後按一下 [加入現有檔案]。
- 在 [將現有的檔案加入資源] 對話方塊中,瀏覽至內含要加入之資源的檔案 (.bmp、.ico、.wav 等),再按一下 [開啟]。檔案將會加入至 Resources 目錄,資源設計工具則會開啟您所加入資源類型的 [分類] 窗格。
- 對於檔案資源,您可以選擇性地在 [屬性] 視窗中設定檔案的 Encoding 和 FileType 屬性。二.播放音效
1.沒加入資源 My.Computer.Audio.Play("C:\Waterfall.wav", _ AudioPlayMode.BackgroundLoop)
2.有加入資源
My.Computer.Audio.Play(My.Resources.Waterfall, _
AudioPlayMode.BackgroundLoop)
都會在背景一直播放
參考:http://msdn.microsoft.com/zh-tw/library/w032hx3c(v=vs.90).aspx
需要停止時
My.Computer.Audio.Stop()
收工,只吃wav檔
2013年10月13日 星期日
華碩分享器,出現『此連接埠用於 Download Master』的解決方法...
最近搬家,朋友拿他以前的RT-N53 來當AP,
韌體是最新的 FW_RT_N53_3004374311.trx
早上更新完後發現要改密碼不能改,
一直跳 『此連接埠用於 Download Master』,
日期時間、密碼一直改不過來,後來才發現在同樣的頁面
有一個 從網際網路設定RT-N53 的選項,要改成『是』 ,然後隨便改port
就能存了。
啥鬼,我又不需要這個 用成『否』又一直跳 『此連接埠用於 Download Master』不給存。
韌體是最新的 FW_RT_N53_3004374311.trx
早上更新完後發現要改密碼不能改,
一直跳 『此連接埠用於 Download Master』,
日期時間、密碼一直改不過來,後來才發現在同樣的頁面
有一個 從網際網路設定RT-N53 的選項,要改成『是』 ,然後隨便改port
就能存了。
啥鬼,我又不需要這個 用成『否』又一直跳 『此連接埠用於 Download Master』不給存。
2013年10月3日 星期四
Notepad++ 在php中使用 php 跟 html 註解方式
php的單行註解是Ctrl+Q 而區塊註解 ALT+SHIFT+Q 是 /*.....*/
但寫html的時候註解是<!-- -->
以下教學是把/*......*/改成 <!-- ...........-->
xp的檔案目錄在%appdata%\Notepad++文件夾」內。
Win7 中是放在「C:\Users\user\AppData\Roaming\Notepad++」需改兩個地方
langs.xml、langs.model.xml 裡面
搜尋 php 大概在第一個搜尋就找的到了,
原先是
<Language name="php" ext="php php3 phtml" commentLine="//" commentStart="/*" commentEnd="*/">
修改成 html的註解方式 請參考language name="html" 的註解方式
<Language name="php" ext="php php3 phtml" commentLine="//" commentStart="<!--" commentEnd="-->">
重啟軟體後 即可用
但寫html的時候註解是<!-- -->
以下教學是把/*......*/改成 <!-- ...........-->
xp的檔案目錄在%appdata%\Notepad++文件夾」內。
Win7 中是放在「C:\Users\user\AppData\Roaming\Notepad++」需改兩個地方
langs.xml、langs.model.xml 裡面
搜尋 php 大概在第一個搜尋就找的到了,
原先是
<Language name="php" ext="php php3 phtml" commentLine="//" commentStart="/*" commentEnd="*/">
修改成 html的註解方式 請參考language name="html" 的註解方式
<Language name="php" ext="php php3 phtml" commentLine="//" commentStart="<!--" commentEnd="-->">
重啟軟體後 即可用
byte 轉 string 的問題
今天寫vb.net的app時,遇到一個問題
用
TextBox1.Text = Environment.NewLine+ " >> " + mesg + TextBox1.Text
把資料印出來的時候,
Dim inStream(10024) As Byte
serverStream.Read(inStream, 0, CInt(clientSocket.ReceiveBufferSize))
Dim returndata As String = _
System.Text.Encoding.ASCII.GetString(inStream)
如果加上msg(returndata)螢幕會只剩下那個returndata的資料,先前的資料都會被洗掉
後來確定是因為byte轉string的時候會產生眾多的ch(0),導致資料被蓋掉
所以就先.......
用空白取代後,再去空白
returndata = Replace(returndata, Chr(0), "")
msg(Trim(returndata))
用
TextBox1.Text = Environment.NewLine+ " >> " + mesg + TextBox1.Text
把資料印出來的時候,
Dim inStream(10024) As Byte
serverStream.Read(inStream, 0, CInt(clientSocket.ReceiveBufferSize))
Dim returndata As String = _
System.Text.Encoding.ASCII.GetString(inStream)
如果加上msg(returndata)螢幕會只剩下那個returndata的資料,先前的資料都會被洗掉
後來確定是因為byte轉string的時候會產生眾多的ch(0),導致資料被蓋掉
所以就先.......
用空白取代後,再去空白
returndata = Replace(returndata, Chr(0), "")
msg(Trim(returndata))
VB.net FOR 回圈
vb 的回圈有點不一樣,不小心卡在這卡了一段小時間
他的for 是 For i As Integer = 0 To sos_port.Length() - 1
注意是 TO...
For
計數變量 = 啟始值 To 終止值 [Step 步進值]
[敘述區塊]
[Continue For]
[Exit For]
Next
[敘述區塊]
[Continue For]
[Exit For]
Next
以往寫php 或 C 或asp.net 都試用 for i=0;i〈 來寫的,所以i會比目標值大,
但VB會跑到跟目標值一樣才停止,他的TO的意思應該是從0到N
2013年8月22日 星期四
MS Chart 使用兩條線做線圖...Multiple line
'假如是第二次載入
If Page.IsPostBack Then
Chart1.Visible = True
Dim date_s, date_e, type As String
Dim conn = New SqlConnection
Dim cmd As SqlCommand
Dim dr As SqlDataReader
Dim dt As DataTable = New DataTable
Dim SqlString As String
date_s = TextBox1.Text
date_e = TextBox2.Text
type = DropDownList1.SelectedValue
'date_s = "2013-08-21 16:48:00.000"
'date_e = "2013-08-21 17:50:00.000"
'type = "Co2"
conn.ConnectionString = System.Web.Configuration.WebConfigurationManager.ConnectionStrings("ConnectionString").ConnectionString() '使用web config
SqlString = "select * from environment_log " & _
" where CONVERT (VARCHAR(10), timestamp, 111) >='" + date_s & _
"' and CONVERT (VARCHAR(10), timestamp, 111) <= '" + date_e & _
"' and type='" + type + "' order by timestamp"
'Label1.Text = SqlString
cmd = New SqlCommand(SqlString, conn) '定義cmnd為SqlCommand指令
'comnd.ExecuteNonQuery() '執行
Try
conn.Open() '開啟連結
dr = cmd.ExecuteReader() '讀取
If dr.HasRows = True Then
'第一種datareader
塞入datatable,使用多個線圖仍須測試
dt.Load(dr)
''Use linq to datatable
'Dim search1 = From c In dt.AsEnumerable() _
'Where c.Field(Of String)("DriverID") = "temp1" _
'Select c
'Dim temp1 = search1.CopyToDataTable()
'Dim search2 = From c In dt.AsEnumerable() _
'Where c.Field(Of String)("DriverID") = "temp2" _
'Select c
'Dim temp2 = search2.CopyToDataTable()
'Chart1.DataSource = temp2
'Chart1.Series("Series1").XValueMember = "timestamp"
'Chart1.Series("Series1").YValueMembers = "value"
''Chart1.Series("Series2").XValueMember = "timestamp"
''Chart1.Series("Series2").YValueMembers = "value"
'第二種使用databindcrosstable
'Use DataBindCrossTable
Chart1.DataBindCrossTable(dt.Rows, "DriverID", "timestamp", "value", "")
'不使用下列方式,只會跑長條圖..
For Each cs As Series In Chart1.Series
cs.ChartType = SeriesChartType.Spline
'cs.IsValueShownAsLabel = True
Next
Chart1.DataBind()
End If
Catch ex As Exception
Response.Write(e.ToString())
Finally
If Not (dr Is Nothing) Then ' --關閉 DataReader
cmd.Cancel() '--自己補上的,原因在下面有講。
dr.Close()
End If
If (conn.State = ConnectionState.Open) Then ' --關閉 DB的連線
conn.Close()
End If
End Try
End If
2013年8月18日 星期日
AJAX Toolkit問題彙整
1.無法修改 Controls 集合,因為控制項包含程式碼區塊 (例如 <% ... %>)。
因為有使用master,所以在head裡面找是不是有<%..%>的語法
結果真的有...<script type="text/javascript" src='<%= ResolveClientUrl("~/Scripts/master.js") %>'></script>
把這段移到body裡面就好了。
2.compile 的時候出現,找不到 ScriptObjectBuilder.cs
把這個加到aspx 內
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
3.ajax元件沒作用
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
改成
<ajaxToolkit:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server" > </ajaxToolkit:ToolkitScriptManager>
2013年7月15日 星期一
RDLC 產生PDF 多出空白頁
近日在用報表的格式,轉PDF出來的時候總會有許多不知名的空白產生。
除了 邊界及 主體大小 需設定以外
再將 報表內的 ConsumeContainWhiteSpace 改為 True
2013年5月8日 星期三
asp.net C# radio button changeChecked
一直使用Changecheck 要根據狀態改變他的值,
結果一直跑不過去,
最後發現......
因為 AutoPostBack="True" 沒有開.....
所以一直沒執行........
按.......卡了三天的原因竟然是這個..........
結果一直跑不過去,
最後發現......
因為 AutoPostBack="True" 沒有開.....
所以一直沒執行........
按.......卡了三天的原因竟然是這個..........
2013年2月6日 星期三
74HC595 重點提醒
2的0次方是最右邊的最低位數字(LSBFIRST),
2的7次方則是左邊的高位第八位數字(MSBFIRST)
MSBFIRST 表示 595 從左向右讀取二進制數;
LSBFIRST 則表示從右向左讀取。
a = 連接到595的數據輸入引腳(14號引腳)的數字輸出端口號。
b = 連接到595的時鐘端口引腳(11號引腳)的數字輸出端口號。
c 可以是 LSBFIRST 或者 MSBFIRST。MSBFIRST 表示 595 從左向右讀取二進制數;LSBFIRST 則表示從右向左讀取。
d = 實際要傳送給595用來表示二進制輸出端口狀態的數值 (0~255)。
綜合以上,個人得出的結論是,MSBFIRST及LSBFIRST只代表要從左邊開始讀二進位數值
或是從右邊開始讀二進位數值。
例如 85(十進位)換算成二進位為10101010
如果設定為MSBFIRST 則亮燈的順序 從左邊開始(10101010)
,因MSBFIRST是從左邊開始讀取二進位數,所以會先取1
如果設定為LSBFIRST 則亮燈的順序 從右邊開始(01010101)
,因LSBFIRST是從右邊開始讀取二進位數,所以會先取0
(1為亮燈0為暗)
如果串連兩顆74HC595移位暫存器,
同時下指令
shiftOut(DataPin, ClockPin, MSBFIRST, 5);
shiftOut(DataPin,ClockPin, MSBFIRST, 85);
則會發現 第一個亮的晶片是最遠的暫存器,
因此推斷當arduino丟一個8bit的資料給暫存器時,會先經由PIN 9輸出給較遠的暫存器,
當暫存器的資料滿時,再傳到原先的暫存器。
以上假設為將LatchPin拉回高電位
推斷是否正確,等明天再買一顆回來試試看。
2的7次方則是左邊的高位第八位數字(MSBFIRST)
MSBFIRST 表示 595 從左向右讀取二進制數;
LSBFIRST 則表示從右向左讀取。
shiftout(a,b,c,d);
a = 連接到595的數據輸入引腳(14號引腳)的數字輸出端口號。
b = 連接到595的時鐘端口引腳(11號引腳)的數字輸出端口號。
c 可以是 LSBFIRST 或者 MSBFIRST。MSBFIRST 表示 595 從左向右讀取二進制數;LSBFIRST 則表示從右向左讀取。
d = 實際要傳送給595用來表示二進制輸出端口狀態的數值 (0~255)。
綜合以上,個人得出的結論是,MSBFIRST及LSBFIRST只代表要從左邊開始讀二進位數值
或是從右邊開始讀二進位數值。
例如 85(十進位)換算成二進位為10101010
如果設定為MSBFIRST 則亮燈的順序 從左邊開始(10101010)
,因MSBFIRST是從左邊開始讀取二進位數,所以會先取1
如果設定為LSBFIRST 則亮燈的順序 從右邊開始(01010101)
,因LSBFIRST是從右邊開始讀取二進位數,所以會先取0
(1為亮燈0為暗)
如果串連兩顆74HC595移位暫存器,
同時下指令
shiftOut(DataPin, ClockPin, MSBFIRST, 5);
shiftOut(DataPin,ClockPin, MSBFIRST, 85);
則會發現 第一個亮的晶片是最遠的暫存器,
因此推斷當arduino丟一個8bit的資料給暫存器時,會先經由PIN 9輸出給較遠的暫存器,
當暫存器的資料滿時,再傳到原先的暫存器。
以上假設為將LatchPin拉回高電位
推斷是否正確,等明天再買一顆回來試試看。
2013年1月7日 星期一
Arduino Circuit board test
接法
1.正極
5v->circuit_board(+)->(+)resistors(C7)
2.訊號
digital(12)->D7
3.LED
(+)->E8
( -)->E9
4.負極(地線)
A9->circuit_board(-)->GND
CODE
void setup(){
pinMode(12,OUTPUT);
}
void loop(){
digitalWrite(12,HIGH);
delay(1000);
digitalWrite(12,LOW);
delay(1000);
}
2013年1月3日 星期四
痞客邦搬家至blogger
因為一些小錯誤,導致我忘了我轉到blogger
最後歸咎原因發現是pixet沒有關閉導致,
加上裡面還有一些舊文章,拜了一下G神,
最後發現大貓共和國寫的軟體,Blogtrans
一開始在匯入的時候,發現怎麼blogger的文章一直沒出來,
明明提示匯入成功...
其實只要重新整理就好...
搞了一個大烏龍..orz
流程:
1.痞客邦(匯出mt檔)
2.開軟體,轉成xml,
記得將副檔名改成.xml
3.開blogger匯入,
會看到匯入多少篇文章,
4.記得按重新整理,出現。
(ps.我沒有勾自動發佈)
引用:http://blog.miaout17.net/2011/04/30/blogtrans-1-0-1-update/
最後歸咎原因發現是pixet沒有關閉導致,
加上裡面還有一些舊文章,拜了一下G神,
最後發現大貓共和國寫的軟體,Blogtrans
一開始在匯入的時候,發現怎麼blogger的文章一直沒出來,
明明提示匯入成功...
其實只要重新整理就好...
搞了一個大烏龍..orz
流程:
1.痞客邦(匯出mt檔)
2.開軟體,轉成xml,
記得將副檔名改成.xml
3.開blogger匯入,
會看到匯入多少篇文章,
4.記得按重新整理,出現。
(ps.我沒有勾自動發佈)
引用:http://blog.miaout17.net/2011/04/30/blogtrans-1-0-1-update/
2013年1月2日 星期三
arduino七段顯示器
參考網址:http://yehnan.blogspot.tw/2012/02/arduinoseven-segment-display.html
七段顯示器 腳位圖
_
|_|
|_|.
由上到下順時鐘旋轉分別為
A
F B
G
E C
D .
針腳
由左到右所對應的英文分別為
GF地AB
ED地C.
A=4
B=3
C=2
D=12
E=13
F=10
G=11
. = 1
本來是用for跑0-9,後來想想改用random跑比較爽一點XD
七段顯示器 腳位圖
_
|_|
|_|.
由上到下順時鐘旋轉分別為
A
F B
G
E C
D .
針腳
由左到右所對應的英文分別為
GF地AB
ED地C.
A=4
B=3
C=2
D=12
E=13
F=10
G=11
. = 1
本來是用for跑0-9,後來想想改用random跑比較爽一點XD
#define NUM 8
#define t true //not bright
#define f false //bright
boolean data[10][NUM] = {
{t, f, f, f, f, t, f, f}, // 0
{t, f, f, t, t, t, t, t}, // 1
{t, t, f, f, t, f, f, f}, // 2
{t, f, f, f, t, f, f, t}, // 3
{t, f, f, t, f, f, t, t}, // 4
{t, f, t, f, f, f, f, t}, // 5
{t, f, t, f, f, f, f, f}, // 6
{t, f, f, f, t, t, t, t}, // 7
{t, f, f, f, f, f, f, f}, // 8
{t, f, f, f, f, f, f, t}, // 9
};
int pins[NUM]={1,2,3,4,10,11,12,13};
void setup(){
for(int i=0;i<NUM;i++)
{
pinMode(pins[i],OUTPUT);
}
}
void writeNumber(int n){
for(int i = 0; i < NUM; i++){
if (data[n][i]== t){
digitalWrite(pins[i],HIGH);
}
else{
digitalWrite(pins[i],LOW);
}
//digitalWrite(pins[i], data[n][i] == t ? HIGH : LOW);
//analogWrite(pins[i],50);
}
}
void loop(){
/* for(int n = 0; n <= 9; n++){
writeNumber(n);
}
*/
unsigned int n=0;
n=random(10);
writeNumber(n);
delay(1000);
/* for(int i=0;i<NUM;i++){
digitalWrite(pins[i],HIGH);
}
delay(1000);
for(int i=0;i<NUM;i++){
digitalWrite(pins[i],LOW);
}
delay(1000);
*/
}
Arduion 無法安裝驅動程式
今天剛拿到手的arduion,一開始插上去usb後就開始悲劇了...
按照眾多網站上面所寫,驅動程式指向 drivers\FTDI USB Drivers ,一整個悲劇,
找不到就是找不到,後來改指向drivers...shit 就找到了,剛忙了十幾分鐘是在忙啥鬼
(╯‵□′)╯︵ ┴─┴
總網頁瀏覽量
About
每次一句
Popular Posts
-
本來想寫NPOI,因為最近有用到過。但後來看到 黑大介紹EPPLUS , 想說這個應該更好用。但最近的工作內容一直沒去碰到Excel。 所幸,有了一個需求,是要用excel的,而且問了網管, 網管說基本上office都是2010了。於是放心大膽的用下去。 在那之前先寫個測...
-
只能說...這OS寫的有待加強 我用的是Paperwhite 開啟的時候,正常都會出現 『滑動已解鎖Kindle』 但是就是沒這個字出現,一整個卡住。 後來查了一下,這不是偶發, 很多人都碰過了。 最後的解決方式是 用USB接電腦,電源按住30秒 重開後解決。 ...
-
前言 總是撐到最後才報稅, 自然人憑證到期了, 之後又要換新的身份證, 這次就來用健保卡來報稅了。 健保卡的申請方式, 參考這篇 建議是使用手機app( 健保快易通) 申請(前提是手機是掛在你名字底下), 如果用電腦申請的話,需要戶口名簿的戶號... 環境 ...
-
同事寫出來的,掛在stored procedure 下, 發送line 通知使用。 我也不知道他從哪些網頁參考出來的XD 取得token的方式,可參考前面文章 快速使用Line Notify 簡單說明 @token 就是對方的token @msg就是內容
-
在論壇碰到有人問一個問題, 『查詢同一廠商同一料號,如果連續五次無退貨資料就顯示, 但是如果有退貨資料次數就需要重新計算』 這個用到了『判斷是不是連續整數的』用法。
Blog Archive
Categories
.NET
小技巧
小說
文章分享
正規表示法
序列埠通訊
居家
拼圖
科學上網
逆向工程
偽文青
軟體
硬體
程式概念
逸品
雲端
試算表
資料庫
資訊安全
電影
演算法
網站心得
網路
機器學習
隨筆
鍵盤
雜事記錄
Android
ATOM
AutoIT
Blogger
Chrome
CSS
Dapper
dd-wrt
Debug
DevOops
DISM
DIY
Docker
Driver
Drone
EasyUI
ECK
EPPlus
EXCEL
FFmpeg
Flot Chart
GCP
Git
GKE
Golang
Google App Script
Grafana
IIS
iOS
istio
iTunes
JavaScript
jQuery
k8s
Katalon
Kubernetes
Line
LINQ
LinqToExcel
Linux
Log4Net
MAC
MailKit
Modbus
moment
MS SQL
MsChart
Nginx
NPOI
Nuget
OpenCV
OpenData
Oracle
PHP
Postgresql
powerBuilder
PowerShell
Prometheus
Python
Raspberry
Redis
ReportViwer
RPA
Scrapy
shellScript
SignalR
Solr
SQL CLR
SRE
SRS
Swagger
T-SQL
tampermonkey
Terraform
TFS
TypeScript
Ubuntu
USB安裝
VBA
VivoStick
VMware
VPN
VS Code
WebAPI
Windchill
Windows 10
Windows 7
Windows OS
Windows Server
WorePress
Xpath
Zookeeper