日期轉換ToString()參數說明

2014年4月21日 星期一

日期轉換成文字格式時,需注意事項:

參數大小寫解譯不同 MM=month, mm=Minutes, HH=24hours, hh=12hours

日期格式:2014-04-22 下午 04:00:00

 

DateTime d = DateTime.Now;
//hh:12小時制
string printDateTime = d.ToString("yyyy-MM-dd hh:mm:ss");
//輸出格式 2014-04-22 04:00:00


//HH:24小時制
string printDateTime1 = d.ToString("yyyy-MM-dd HH:mm:ss");
//輸出格式 2014-04-22 16:00:00


 



參考


http://msdn.microsoft.com/zh-tw/library/8kb3ddd4(v=vs.110).aspx

http://msdn.microsoft.com/zh-tw/library/zdtaw1bw(v=vs.110).aspx

Read more...

Linq偵錯方式

2014年2月14日 星期五

linq 裡也可以寫funciton來表示

原寫法,當資料有問題則直接出錯

 

List<Order> order = GetAllOrderList();

order = order.Where(o=>o.status.Equals(1) && o.paymentStatus.Equals(1));


如果要查哪筆資料出錯可以用以下寫法



List<Order> orderList = GetAllOrderList();

orderList = orderList.Where(o=>
{
var hasHit =false;
try
{
hasHit = o.status == "NCCC" && o.paymentStatus ==1;
}
catch(Exception ex)
{
var error = o.id;
var err = ex.Message;
}
}).ToList();


等於方式用”Equals”時要很小心,物件一定要有值才不會出錯



所以我改成用==方式來處理就沒這麼問題了



利用function寫法可以讓錯誤更容易偵錯喔。

Read more...

使用FileStream開啟檔案時發生存取被拒

2014年1月8日 星期三

在做圖片查詢時遇到存取被拒

語法如下:

string path="xxx"; //檔案路徑
using(FileStream fsm = new FileStream(path,FileMode.Open))
{


}


如果只要查詢建議將屬性設定要唯讀



string path="xxx"; //檔案路徑
using(FileStream fsm = new FileStream(path,FileMode.Open,FileAccess.Read))
{


}


參考來源:



http://msdn.microsoft.com/zh-tw/library/b6fz1x84(v=vs.110).aspx

Read more...

SSIS資料型態異常處理

2013年12月9日 星期一

最近遇到的問題是

tableA丟資料到tableB發生小數點異常0.12345—>0.12

例:

Table 欄位 型態 值
tableA grossProfit decimal(32,5) 0.12345
tableB grossProfit decimal(32,5) 0.12

 

原來是用OLEDB來源元件抓取資料時,該元件自動將tableA.grossProfit欄位判斷為”有效位數32,小數位數2”

才會有這種自動截斷的情況。

 

解決方法:

先在元件上按右鍵—>顯示進階編輯器—>輸入與輸出屬性頁籤—>OLEDB來源輸出—>輸出資料行—>選取該欄位

並修改1.Precision(有效位數)2.Scal(小數位數),改成32,5節可。

Read more...

程式碼命名與撰寫規範

2013年11月19日 星期二

先筆記下來,有時間再來整理。

 

參考資料:

http://msdn.microsoft.com/zh-tw/library/ms229002(v=vs.100).aspx

http://www.dotblogs.com.tw/regionbbs/archive/2009/09/06/codingstandards.aspx

Read more...

好用的大量新增SqlBulkCopy

2013年11月12日 星期二

最近工作上遇到的問題

公司有用ga分析,每天都需要把資料抓取下來,由於早期同事寫的語法為

一筆一筆的insert into,效率實在是不太好,現在有更好用的SqlBulkCopy可以用了,請參考以下範例。

 //一開始我們先產生一個DataTable來裝我們要寫入的資料 
DataTable dt = new DataTable();
dt.Columns.Add("id", typeof(int));
dt.Columns.Add("name", typeof(string));

//因為SqlBulkCopy的猛就是大量的一次寫入,所以我們也來跑10萬筆吧
int i;
for (i = 0; i < 100000; i++)
{
DataRow dr = dt.NewRow();
dr["name"] = i.ToString();
dt.Rows.Add(dr);
}

//宣告連結字串
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["DBConnectionString1"].ConnectionString);

conn.Open();
//宣告SqlBulkCopy
using (SqlBulkCopy sqlBC = new SqlBulkCopy(conn))
{
//設定一個批次量寫入多少筆資料
sqlBC.BatchSize = 1000;
//設定逾時的秒數
sqlBC.BulkCopyTimeout = 60;

//設定 NotifyAfter 屬性,以便在每複製 10000 個資料列至資料表後,呼叫事件處理常式。
sqlBC.NotifyAfter = 10000;
sqlBC.SqlRowsCopied += new SqlRowsCopiedEventHandler(OnSqlRowsCopied);

//設定要寫入的資料庫
sqlBC.DestinationTableName = "dbo.Table1";

//對應資料行
sqlBC.ColumnMappings.Add("id", "id");
sqlBC.ColumnMappings.Add("name", "name");

//開始寫入
sqlBC.WriteToServer(dt);
}
conn.Dispose();


 



參考資料:



http://king971119.blogspot.tw/2010/12/c-sqlbulkcopy.html



http://msdn.microsoft.com/zh-tw/library/system.data.sqlclient.sqlbulkcopy(v=vs.110).aspx

Read more...

SyntaxHighLighter 3.0.83 高亮程式碼 在Google Blogger使用方法

目前最新版本為3.0.83

官方網站:http://alexgorbatchev.com/SyntaxHighlighter/

 

使用方法

1.進入管理後台—>範本—>編輯HTML

<link href='http://alexgorbatchev.com/pub/sh/current/styles/shCoreDefault.css' rel='stylesheet' type='text/css'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shCore.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shAutoloader.js' type='text/javascript'/>


2.版本設置—>新增小工具—>選取Html/Javascript



<style>
.highlightsetting {
overflow-y: hidden !important; /*修正右側滾動條之BUG*/
border: 1px solid #2187BB; /*加入程式碼邊框*/
}
.syntaxhighlighter table td.gutter .line, .syntaxhighlighter table td.code .line {
padding: 0 13px !important; /*修正行號距離*/
}
</style>
<script type='text/javascript'>
function path() {
var args=arguments, result=[];
for(var i=0;i<args.length;i++)
result.push(args[i].replace('@', 'http://alexgorbatchev.com/pub/sh/current/scripts/'));
return result;
}
SyntaxHighlighter.autoloader.apply(null, path(
'applescript @shBrushAppleScript.js',
'actionscript3 as3 @shBrushAS3.js',
'bash shell @shBrushBash.js',
'coldfusion cf @shBrushColdFusion.js',
'cpp c @shBrushCpp.js',
'c# c-sharp csharp @shBrushCSharp.js',
'css @shBrushCss.js',
'delphi pascal @shBrushDelphi.js',
'diff patch pas @shBrushDiff.js',
'erl erlang @shBrushErlang.js',
'groovy @shBrushGroovy.js',
'java @shBrushJava.js',
'jfx javafx @shBrushJavaFX.js',
'js jscript javascript @shBrushJScript.js',
'perl pl @shBrushPerl.js',
'php @shBrushPhp.js',
'text plain @shBrushPlain.js',
'py python @shBrushPython.js',
'ruby rails ror rb @shBrushRuby.js',
'sass scss @shBrushSass.js',
'scala @shBrushScala.js',
'sql @shBrushSql.js',
'vb vbnet @shBrushVb.js',
'xml xhtml xslt html @shBrushXml.js'
));
SyntaxHighlighter.defaults['toolbar']=false; //隱藏問號按鈕
SyntaxHighlighter.defaults['class-name']='highlightsetting'; //自定義CSS設置
SyntaxHighlighter.defaults['auto-links']=false; //超連結設定顯示為文字
SyntaxHighlighter.config.space=' '; //消除Chrome複製時的BUG空白
SyntaxHighlighter.config.stripBrs=false; //略過Blogger之br標籤
SyntaxHighlighter.all();
</script>


參考來源:http://qqboxy.blogspot.com/2010/05/syntaxhighlighter.html



使用方式



程式加入方法:



<pre class="brush: 填入程式語言代碼"> 
您的程式碼請貼此處。
</pre>


填入程式語言代碼有



  'applescript            @shBrushAppleScript.js',
'actionscript3 as3 @shBrushAS3.js',
'bash shell @shBrushBash.js',
'coldfusion cf @shBrushColdFusion.js',
'cpp c @shBrushCpp.js',
'c# c-sharp csharp @shBrushCSharp.js',
'css @shBrushCss.js',
'delphi pascal @shBrushDelphi.js',
'diff patch pas @shBrushDiff.js',
'erl erlang @shBrushErlang.js',
'groovy @shBrushGroovy.js',
'java @shBrushJava.js',
'jfx javafx @shBrushJavaFX.js',
'js jscript javascript @shBrushJScript.js',
'perl pl @shBrushPerl.js',
'php @shBrushPhp.js',
'text plain @shBrushPlain.js',
'py python @shBrushPython.js',
'ruby rails ror rb @shBrushRuby.js',
'sass scss @shBrushSass.js',
'scala @shBrushScala.js',
'sql @shBrushSql.js',
'vb vbnet @shBrushVb.js',
'xml xhtml xslt html @shBrushXml.js'


如果是用Windows Live Writer,可以用外掛小工具



網站:http://precode.codeplex.com/



用法請參考:http://fundesigner.net/wlw-precode/

Read more...