分享使用微軟開發工具及工作上會遇到的疑難雜症
2013-08-12
[+/-] : Path.Combine could be very useful
you can use this function => Path.Combine(Application.StartupPath, "Process")
Please DON'T put "\" Like this => Path.Combine(Application.StartupPath, "\Process")
You will only get string "\Process"....
Read more.
2013-05-18
[+/-] : QNAP Subversion newest Firmware (3.8.3 Build 20130426) fixed Autorun.sh problem
Step 1:
find /share -name "Optware.sh"
vi /etc/config/qpkg.conf
press a to edit
Add the following lines to the end of /etc/config/qpkg.conf:
[Optware_Autorun]
Name = Optware_Autorun
Version = 1.0
Enable = TRUE
Shell = /share/MD0_DATA/.qpkg/Optware/autorun.sh
Install_Path = /share/MD0_DATA/.qpkg/Optware
Author = Geoff Clements
Date = 2012-06-18
Press esc key
And key in :wq then enter
chmod +x /etc/config/qpkg.conf
Step 2:
vi /opt/autorun.sh
press a to edit
paste the code follow:
#!/bin/bash
shopt -u nullglob
# Change these to adjust the timeout
# timeout(secs) = (maxtries - count) * delay
count=0
declare -r delay=5 maxtries=12
# Default action is "start" as this file is called with
# no parameters on NAS startup but you can, for
# example, do a "./autorun.sh stop" to stop all Optware
# services
action=${1:-start}
LOG=/sbin/log_tool
${LOG} -t 0 -a "Starting Optware_Autorun."
# Wait for /opt to come online
# use ipkg as a test
while [ ! -f /opt/bin/ipkg ]
do
if ((count++ >= maxtries))
then
${LOG} -t 1 -a "Optware_Autorun time out."
exit 1
fi
sleep ${delay}
done
# Run all executables beginning with S in /opt/init.d/Optware/
for f in /opt/etc/init.d/Optware/S*
do
[ -x ${f} ] && ${f} ${action}
done
exit 0
Press esc key
And key in :wq then enter
chmod +x /opt/autorun.sh
Step 3:
mkdir /opt/etc/init.d/Optware/
chmod +x /opt/etc/init.d/Optware/
vi /opt/etc/init.d/Optware/S10svnserve
paste the code follow:
#!/bin/bash
# Full path to executable
runfile=/opt/bin/svnserve
# Parameters to pass to runfile
params="-d --listen-port=3690"
# Need exactly one parameter
((${#} == 1)) || exit 1
# Must have a runfile
[ -z "${runfile}" ] && exit 1
service=$(basename "${runfile}")
LOG=/sbin/log_tool
DMGR=/sbin/daemon_mgr
waitfor () {
# $1 = service
# $2 = maximum time to wait (secs) - default 30
local pid=$(pidof ${1})
local count=${2:-30}
while [ -n "${pid}" ]
do
sleep 1
if ((--count <= 0))
then
return 1
fi
pid=$(pidof ${1})
done
return 0
}
start () {
${LOG} -t 0 -a "Starting ${service}."
pid=$(pidof ${service})
if [ -z "${pid}" ]
then
${DMGR} ${service} start "${runfile} ${params}"
pid=$(pidof ${service})
if [ -n "${pid}" ]
then
${LOG} -t 0 -a "${service} started."
else
${LOG} -t 2 -a "${service} failed to start."
fi
else
${LOG} -t 1 -a "${service} already running."
fi
}
stop () {
${LOG} -t 0 -a "Stopping ${service}."
pid=$(pidof ${service})
if [ -n "${pid}" ]
then
${DMGR} ${service} stop "${runfile}"
if waitfor ${service}
then
${LOG} -t 0 -a "${service} stopped."
else
${LOG} -t 2 -a "Cannot stop ${service}."
fi
else
${LOG} -t 1 -a "${service} already stopped."
fi
}
case "${1}" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
reload)
pid=$(pidof ${service})
[ -n "${pid}" ] && kill -s SIGHUP ${pid}
;;
esac
exit 0
Press esc key
And key in :wq then enter
chmod +x /opt/etc/init.d/Optware/S10svnserve
/opt/autorun.sh start
...
Read more.
2012-01-10
[+/-] : 程式設計師勸敗 QNAP RAID 1 檔案伺服器管理
會選擇QNAP當然是下了不少功課,基本上RAID 1就已經非常厲害了
當然會買的理由是因為有在維護網站程式,所以保護原始碼也是Programmer的工作之一啊^^
這一台可以裝上Subversion簡稱svn,這樣就能把所有的原始碼commit進這一台機器內,
是不是很棒呢!!不不不!是非常棒,想像一下一台24小時不關機的svn在運作,又非常省電環保,真的是想到作夢都會笑耶。呵呵呵
關於svn怎麼運作可以參考有一系列的文章,看完就會http://demo.tc/Post/715
關係Qnap怎麼設定svn也不難,可以上Google找找。
真心勸敗啊^_^...
Read more.
2011-12-21
[+/-] : TortoiseSVN 使用,使用分支Branch開發新功能
看看這一篇文章我想所有的程式設計師看完一定心有戚戚焉
http://demo.tc/Post/715
以下是文章大意:
某日B工程師正在開發一個驚天地動鬼神的功能,扯到了專案的最核心,眼看大概再三個工作天就可以完成了,正在沾沾自喜的時候客戶來了一通電話。
客戶:「我想要改變一下流程你幫我把A功能和B功能中間差一個確認頁面,避免使用者一直打來說他不小心刪除了,叭啦叭啦...」
(這時你聽到需求感到相當簡單,不就是加個 Confirm 就可以解決的小事,於是你很有信心的回)
B工程師:「喔~這樣阿,沒問題阿我馬上幫你改好」
客戶:「嗯!快點阿,不然總機小姐快忙死了」
電話掛掉後你很自然的開啟A功能修改一下馬上就完成了客戶要的東西,你正要上傳的時候卻發生了悲劇!因為你正在修改的大功能是在主線(Trunk)中修改的,即使現在只是要一個那麼小那麼容易的功能你卻因為大功能尚未完成而卡住了你所有的修改。這時候電話又來了...
客戶:「阿不是說一下就改好?三個小時過去了電話還是一直來阿」
B工程師:「嗯…..這功能可能還要三天才可以上去…….」
客戶:「你以為我不會寫程式阿!!這麼簡單的功能你也要做三天,我去找你老闆說Read more.
2011-08-02
[+/-] : Toad For SQL 5.5看到Description (描述)了
因為有用過Toad For Oracle比較之下,就是有Descrition欄位可以看
從Toad For SQL 3x版一直等啊等,終於盼到5.5版把此欄位納進去了
說了一堆!看圖最清楚~


補充:
原來4.1版就內建Description了,哈哈
5.5版試用一天的心得,速度有變快,所以直接衝最新版吧^^...
Read more.
2011-06-08
[+/-] : Linq DataClasses Cache問題
Dim irt = From p In db.Items_Raw_Type _
Where p.irt_Type.ToUpper = irt_Type.ToUpper _
Order By p.irt_Name Ascending _
Select p
可是當更新完UPDATE時從irt得到的資料居然是一樣
可是開啟SQL PROFILE明明看到有要求連線DB返回的資料也是最新的
這明明就是LINQ自動Cache了吧~
設定中斷點之後,真的是沒有被Update
後來求救Google大神
Dim irt = From p In db.Items_Raw_Type _
Where p.irt_Type.ToUpper = irt_Type.ToUpper _
Order By p.irt_Name Ascending _
Select p
db.Refresh(Data.Linq.RefreshMode.OverwriteCurrentValues, irt)
只要加上一行!得到的結果就會正確了
db.Refresh(Data.Linq.RefreshMode.OverwriteCurrentValues, irt)
Case close...Read more.
2011-03-20
[+/-] : 真的被MS SQL版本問題卡到
可是PM給我的.Bak檔一直無法還原,就連PM把DB卸載下來給我也無法順利掛上去
明明我灌的也是MS SQL 2008啊
後來PM給我遠端的帳號密碼讓我自己去連連看,打開SSMS一看
一時間不知該說什麼才好MS SQL 2008 R2
該不會是R2的關係吧!
上網查了一下
基本上因為版本不同所以SQL2008 R2相關資料檔是無法再附加回SQL2008
簡單的說微軟讓你都能從舊的昇級,確不讓你降級
好在現在都有Express版本(免費),開發者專用!
只好摸摸頭皮去下載MS SQL 2008 R2 Express囉
Case Close...
Read more.
2011-03-14
[+/-] : 繼上一篇Easeus backup之後對SSD的影響
但是遇到SSD的硬碟呢?
答案是:功能一切正常
可是還原之後必須要做一下Alignment一次
各位可以查查免費Alignment的工具
有Alignment和沒Alignment的差別來看看吧!有圖有真相
紅字Error表示需要Alignment

綠字OK表示已經Alignment了

最後的總分多了一倍!感覺還不錯
雖然筆者的主機板沒支援ACHI感覺有嚴重掉速
但是因為是公司的電腦,所以就不敢要求太多了^^
Case Close...
Read more.
2011-03-09
[+/-] : 推薦:快速上手EASEUS Todo Backup 2.0 ,免費備份還原Windows系統
在說明之前大家可以看看筆者推薦"電腦玩物"的部落格
快速上手EASEUS Todo Backup 2.0 ,免費備份還原Windows系統
真的是免費又好用一切都是那麼的簡單,備份時也能一邊操作電腦也不需要重開機,詳細的備份還原操作過程
麻煩大家還是看一下原創
這裡要提醒大家一點就是有一個勾勾千萬不要勾
會無法開機或是出現BOOTMBR的錯誤,請看下圖:

如果你也和筆者一樣勾起來並且無法開機時,
解決方式為,用Windows 7開機片!整個C砍掉,重建!
並且把系統灌好之後,再安裝EASEUS Todo Backup 2.0
再還原一次就好!而且這次還原千萬不要再勾上面Disk的勾勾就好囉
呼!真的是有備份有保佑!之前換SSD硬碟然後重灌花了將近一天的時間
筆者可不想再來一次^_^
這次還原只是少了Windows 7 SP1真的還可以接受!
看來把Windows 7 SP1裝完之後!一定要趕快來備份^_^
Case Close...
Read more.
[+/-] : 是夠義氣的朋友,就該幫忙擺脫IE6!" XD (Friends don't let friends use IE6)
連結網址http://ie6countdown.com/...
Read more.
2011-03-07
[+/-] : ASP.NET Slideshowextender Using WebService
照著用也都非常的ok,也應用到前個案子上面,輕鬆愉快。
問題是現在著手的新案子,PM要求也要使用Slide Show的方式,
筆者馬上答應,沒想到才是痛苦的開始,先說說問題點
AjaxControlToolkitSampleSite的範例網站的使用方式是用在
Codebeside裡面,假設你的網頁叫Menu.aspx那Slide Show的Ajax是寫在Menu.aspx.vb
卡點一:
因為筆者本身有使用UrlRewritingNet.UrlRewriter.dll為的就是SEO優化
會自動把MENUS.aspx?mm_Id=4&smt=1轉成是MENUS_SOUP.aspx
也就是二者是相通的,然後在Codebeside用到Request.Query("mm_Id")和Request.Query("mm_Id")
一執行MENUS_SOUP.aspx,馬上報錯,可是執行MENUS.aspx?mm_Id=4&smt=1確可以
網頁上一切正常,可是用Fiddler查看Url居然會自動加料變成MENUS.aspx?mm_Id=4&smt=1/GetSlides
本來想放棄直接使用MENUS.aspx?mm_Id=4&smt=1帶參數的方式表現時,另一個問題又來了
卡點二:
要把Slide Show放入Repeater裡面,假定有三筆資料,每筆資料裡面又有自己的圖,而且圖都要變換,有可能是第一筆資料有5張圖,第二筆料有10張圖,第三筆資料有7張圖。
PM想要的就是每資料內的Slide Show,
解法:
一定要用Web Service了,而且是要帶參數的
取一個MenuPhotoWebService.asmx
<%@ WebService Language="VB" Class="MenuPhotoWebService" %>
Imports System
Imports System.Web
Imports System.Web.Services
Imports System.Web.Services.Protocols
Imports System.Linq
Imports AjaxControlToolkit
_
_
_
_
Public Class MenuPhotoWebService
Inherits System.Web.Services.WebService
_
Public Function GetSlides(ByVal contextKey As String) As AjaxControlToolkit.Slide()
Dim db As New vb.StarryNightDataClassesDataContext()
Dim mp = (From p In db.Menus_Photo _
Where p.mp_sm_Id = CType(contextKey, Integer) _
Select p).ToList()
If mp IsNot Nothing Then
Dim result As AjaxControlToolkit.Slide() = New AjaxControlToolkit.Slide() {}
Array.Resize(result, mp.Count)
Dim i As Integer = 0
For Each m In mp
result(i) = New AjaxControlToolkit.Slide("images/Menus/S" + m.mp_img_Name, "", "")
i += 1
Next
Return result
End If
Return Nothing
End Function
End Class
前端頁面如下
〈asp:Repeater ID="rpt_menu_detail" runat="server" DataSourceID="ods_menu_details"〉
〈ItemTemplate〉
〈asp:Image ID="imgLeft" ImageAlign="AbsMiddle" runat="server" CssClass="img-l" /〉
〈ajaxToolkit:SlideShowExtender ID="SlideShowExtenderLeft" runat="server" TargetControlID="imgLeft" SlideShowServiceMethod="GetSlides"
UseContextKey="true" ContextKey='〈%#Eval("sm_Id")%〉' SlideShowServicePath="~/MenuPhotoWebService.asmx" AutoPlay="true"
Loop="true" /〉
〈/ItemTemplate〉
〈/asp:Repeater〉
重點是
UseContextKey ContextKey 看出來了嗎^^...
Read more.
2011-03-02
[+/-] : ASP.NET 網頁名稱的保留字
當然是Error連連囉。
所以之後一直謹記在心,不管是T-SQL語法或是寫程式時,都會格外注意
1.寫T-SQL語法時,真的一定要用到保留字當資料表或是欄位時,要加上[]
2.寫程式我都會用UnderLine 來做區別
今天踢到的鐵板居然是建立網頁名稱時,因為取了一個名為EVENT.aspx的網頁
結果就不給run了,debug了許久,發現
<%@ Page Title="" Language="VB" MasterPageFile="~/MasterPage.master" AutoEventWireup="false" CodeFile="EVENT.aspx.vb" Inherits="EVENT" %>
問題出在Inherits="EVENT"
當然就沒再去深入研究,另取一個新的檔名就好
沒必要和它硬碰硬,呵呵
Case Close...
Read more.
2010-11-03
[+/-] : 使用SmtpClient注意事項如果你不是使用.Net 4.0+
只能等到自行Time out,這會造成有些e-mail不對而造成錯誤信息
解決方式其實很簡單,將MaxIdleTime設為0還有ConnectionLimit設為1就搞定囉!
SmtpClient.ServicePoint.MaxIdleTime = 0
SmtpClient.ServicePoint.ConnectionLimit = 1
如果想看官網回報可以看這裡
SmtpClient does not close session after sending message...
Read more.
2010-08-31
[+/-] : Visual Studio 2010 英文版 .NET 3.5 SP1 Crystal Report 2008 FP31 Winform 內嵌於 Setup 專案內的解決方案
2.安裝cr4vs2010.exe 如果無法下載!請網路上自行尋找,下載網址如下:
http://www.sdn.sap.com/irj/scn/weblogs?blog=/pub/wlg/20322
目前有二個版本:
Beta 1 MD5: 48B63F922440CC98C207720D48FE0E79
Beta 2 MD5: 7E6D73E19C4ECC252B61C7529C44AD39
3.將Crystal Report 2008更新到最新的Service Pack
筆者是安裝Crystal Report 2008 SP0然後一路安裝升級包
SP1, SP2, SP3, FP31,目前最新的Pack,安裝網址如下:
https://websmp130.sap-ag.de/sap%28bD1lbiZjPTAwMQ==%29/bc/bsp/spn/bobj_download/main.htm
下拉選單:
Software Product 選 Crystal Reports
Product Version (optional) 選 Crystal Reports 2008
Software Type (optional) 選 Utility
然後按下Search按鈕
裝完最新的service pack fp31 之後別忘了還要下載Crystal Reports 2008 Fix Pack 3.1 - Merge Modules
下載完成會得到cr2008sp3_mm_fp31.zip
請解壓後,把CRRuntime_12_3.msm,如果需要繁簡體,請一起複制起來,CRRuntime_12_3_zh_CN.msm,CRRuntime_12_3_zh_TW.msm
放到C:\Program Files (x86)\Common Files\Merge Modules
32位元作業系統請把(x86)拿掉
4.請參考VS2008 SP1 如何設定讓 .NET 3.5 SP1 內嵌於 Setup 專案內
5.將Microsoft Visual C++ 2005 Redistributable Package (x86)也內嵌於專案內
http://www.xun6a.us/file/8bf2543d8/vcredist_x86_2005.zip.html
於此下載,解壓後會得到一個vcredist_x86_2005目錄,將此目錄複制貼到以下路徑
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages\
注意:如果客戶端不想用內嵌的方式,則必需自行安裝.Net Framework 3.5 SP1和
Microsoft Visual C++ 2005 Redistributable Package (x86)
------------------------------------------------------------------------------------------------------------
開始測試:
1.先開一個新的空的專案選要存的地方(桌面),執行環境別忘了要選.Net Framework 3.5
2.在空的專案內按右鍵,加入Windows Form專案選.Net Framework 3.5
加一個新的WinForm在左邊Toolbar選到Crystal Report Viewer拉到視窗內,按下Show All Files按鈕
就會看到References裡面多了6個Crystal Report的dll

請把這6個Crystal開頭的References記下來
然後選起來之後選右鍵,Remove掉
再依序到以下目錄一個一個加回來
C:\Program Files (x86)\Business Objects\Common\4.0\managed
C:\Program Files (x86)\Business Objects\Common\4.0\managed\dotnet2
3.在空的專案內按右鍵,加入Setup專案選.Net Framework 3.5
在Setup專案上按右鍵選Add=>Merge Module...選CRRuntime_12_3.msm,如需繁簡體CRRuntime_12_3_zh_CN.msm,CRRuntime_12_3_zh_TW.msm也一併加入
4.選到CRRuntime_12_3.msm右鍵Properties看到MergeModuleProperties,在Keycode輸入
5.在空的專案內按右鍵Properties選到Prerequisites...按鈕
把.net4.0 勾勾取消
.NET Framework 3.5 SP1打勾
Microsoft Visual C++ 2005打勾
Installwindows 3.1打勾
選Download prerequisites from the same location as my application

如果是自己安裝不需內嵌的客戶端,那就都
把.net4.0 勾勾取消把.NET Framework 3.5 SP1打勾
其他留預設就行
Download prerequisites from the component vendor's web site
6.在Setip專案內Detected Dependencies目錄展開選到Microsoft .NET Framework點二下
把Version從.NET 4.0改成.NET Framework 3.5

7.搞定囉,可以開始編譯了
最後會得到

執行setup.exe就會檢查.NET 3.5 SP1和Microsoft Visual C++ 2005
如果沒有就會自動裝好,搞定收工!
後記,編譯時會得到15個Warnings,但是不影響執行結果
如果有解決Warnings的朋友請幫忙告知,如何解決,多謝...
Read more.
2010-08-10
[+/-] : Word 套版 With Office Word 2007 問題
一切都是這樣的美好,因為我們全公司都使用Office 2003
Dim word As New Microsoft.Office.Interop.Word.Application
Dim doc As Microsoft.Office.Interop.Word.Document
Try
doc = word.Documents.Open("C:\1.doc")
doc.Activate()
Dim myStoryRange As Microsoft.Office.Interop.Word.Range
For Each myStoryRange In doc.StoryRanges
With myStoryRange.Find
.Text = "[Name]"
.Replacement.Text = "Boss"
.Wrap = Microsoft.Office.Interop.Word.WdFindWrap.wdFindContinue
.Execute(Replace:=Microsoft.Office.Interop.Word.WdReplace.wdReplaceAll)
End With
Next myStoryRange
word.Visible = True
Catch ex As COMException
MessageBox.Show("Error accessing Word document.")
Finally
doc = Nothing
word = Nothing
End Try
可是好景不常,噹噹噹~踢到了一個鐵板
---------------------------
System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
at Word.Find.set_Text(String prop)
---------------------------
網路上眾說紛雲,
1.有人說是記憶體壞掉
2.也有說是因為Office 2003和Office 2007同時安裝的關係
嗯~發生問題的User真的是使用Office 2007
長話短說,為了這個問題在茫茫網海中花了二天半的時間
最後當然是找到了解決方式
原來只要改一個字
把Word.WdFindWrap.wdFindContinue改成Word.WdFindWrap.wdFindAsk
問題解決!
如果套板的文字只要換一次可以把wdReplaceAll改成wdReplaceOne
這樣可以節省一些時間喔!
Case close....
Read more.
2010-08-04
[+/-] : Crystal Reprot For VS 2010
要在VS2010的Toolbar出現Crystal Report Viewer控制項的人可以安裝
SAP Crystal Reports, version for Visual Studio 2010
目前好像只支援英文版的VS2010
安裝心得,由以下網址進入
http://www.sdn.sap.com/irj/scn/weblogs?blog=/pub/wlg/20322
會看到三個下載
SAP Crystal Reports, version for Visual Studio 2010
SAP Crystal Reports runtime engine for .NET Framework 4 (32-bit)
SAP Crystal Reports runtime engine for .NET Framework 4 (64-bit)
當初只想嘗鮮!所以只裝了SAP Crystal Reports, version for Visual Studio 2010然後就興高采烈的開了一個Windows專案,因為是VS2010的緣故
所以預設就以.NET Framework 4.0的方式開啟!
結果在Toolbar看不到Crystal Report Viewer控制項,當場冷掉,
花了幾小時的重灌和上網找資料,突然心念一轉就以.Net Framework 3.5開一個新專案
登登登登~Toolbar居然看到了久造的Crystal Report Viewer控制項,感動ing
結論:
要想.NET Framework 4.0可以看到Crystal Report Viewer控制項
最好把底下二個也灌一灌:
SAP Crystal Reports runtime engine for .NET Framework 4 (32-bit)
SAP Crystal Reports runtime engine for .NET Framework 4 (64-bit)
Read more.
2010-07-27
[+/-] : Windows 7 Print Spooler 自動關閉

原來是Windows 7 與 HP相衝的關係
發生原因可能是該印表機被當成是Shared的印表機
列印文件發生問題,造成此Service當掉所致
1.先將此Service停用 (Stop),按滑鼠右鍵Stop
2.然後到C:\Windows\System32\spool\PRINTERS將目錄內的資料全數刪除
3.將此Service啟用 (Start),按滑鼠右鍵Start
應該可以解決此問題...
Read more.
2010-05-18
[+/-] : Linq Where in 進階版
http://lovetoknowgoogleandmstech.blogspot.com/2009/01/linq-where-in-and-not-in.html
現在來個進階版囉!直接看Code比較快
先來個String字串的Where in
Dim Lot() As String = Split("21003144,21003145", ",")
Dim i1 As Integer = 0
Dim query = From p In db.Packing_Item_Entry_History _
Where (Lot).Contains(p.pieh_Lot_No) _
Select p.pieh_Lot_No, p.pieh_pih_Job_No
DataGridView1.DataSource = query
or
Dim query = From p In db.Packing_Item_Entry_History _
Where (Split("21003144,21003145", ",")).Contains(p.pieh_Lot_No) _
Select p.pieh_Lot_No, p.pieh_pih_Job_No
DataGridView1.DataSource = query
再來個數字版的Where in
Use integer
Dim dkey_arr() As String = Split("14472,14473", ",")
Dim iArray(dkey_arr.Length - 1)
For i As Integer = 0 To dkey_arr.Length - 1
iArray(i) = CType(dkey_arr(i), Integer)
Next
Dim query = From p In db.Packing_Item_Entry_History _
Where (iArray).Contains(p.pieh_dKey) _
Select p.pieh_Lot_No, p.pieh_pih_Job_No
DataGridView1.DataSource = query
或者是
...
Use integer
Dim i_List As New List(Of Integer)
For Each s As String In String.Split("14472,14473", ",")
i_List.Add(CType(s, Integer))
Next
Dim query = From p In db.Packing_Item_Entry_History _
Where (i_List).Contains(p.pieh_dKey) _
Select p.pieh_Lot_No, p.pieh_pih_Job_No
DataGridView1.DataSource = query
Read more.
2010-05-11
[+/-] : Winfrom 子視窗傳值給父視窗
...
先在Form1建立一個Untyped dataset並取名為DS1及Textbox取名為TextBox1
Public Class Form1
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim sForm2 As New Form2()
sForm2.ShowDialog(Me)
DataGridView1.DataSource = DS1.Tables(0)
End Sub
End Class
Public Class Form2
Dim db As New VivaDataClassesDataContext()
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim frm1 As Form1 = DirectCast(Me.Owner, Form1)
DirectCast(frm1.Controls("textBox1"), TextBox).Text = TextBox1.Text
Dim query = From p In db.Product_Daily_Report_Comment _
Select p
frm1.DS1.Tables(0).Load(New DataTableReader(query.ToDataTable()))
Me.Close()
End Sub
End Class
Read more.
2010-04-28
[+/-] : Vmware Open Intel VT
後來拜請Google大神查到以下文章
原來Bios打開VT之後!重點來了
請先關機,把電源都拔掉!筆者為了保險起見!連螢幕的電源都拔了
等了幾秒之後!再把插頭都接回去!
開機之後!一切問題迎刃而解!
http://stupefydeveloper.blogspot.com/2008/12/intel-vt-how-to-enable.html...
Read more.