2015年6月8日 星期一

Microsoft OLE DB Provider for ODBC Drivers 錯誤 '80004005'

ASP 連 SQL SERVER資料庫


Microsoft OLE DB Provider for ODBC Drivers 錯誤 '80004005'
[Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL Server 不存在或拒絕存取。



連線資訊:
ConnString="driver={SQL Server};server=127.0.0.1;uid=sa;pwd=密碼;database=資料庫"


變更:
ConnString="driver={SQL Server};server=(local);uid=sa;pwd=密碼;database=資料庫"

2015年5月20日 星期三

Search Files By LINQ

System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(path);

IEnumerable<System.IO.FileInfo> fileList
            = dir.GetFiles(string.Format("test*.docx"), System.IO.SearchOption.AllDirectories);

var files = from file in fileList
                 where file.Extension == ".docx" &&           DateTime.Now.ToString("yyyyMMdd").Equals(file.LastWriteTime.ToString("yyyyMMdd"))
                 orderby file.LastWriteTime descending
                 select file;

2015年4月29日 星期三

SQL 增加數字千分位

SQL SERVER:
select convert(varchar(1000),cast(欄位 as money),1)

ORACLE:
SELECT to_char(QTY_1, 'FM999,999,990.00')

2015年3月24日 星期二

手動打包*.dll及exe

AppDomain.CurrentDomain.AssemblyResolve += (sender, senderArgs) => {
                var executingAssembly = Assembly.GetExecutingAssembly();
                var assemblyName = new AssemblyName(executingAssembly.FullName).Name;
                var dllName = new AssemblyName(senderArgs.Name).Name;
                var dllUri = assemblyName + "." + dllName + ".dll";
                using (var resourceStream = executingAssembly.GetManifestResourceStream(dllUri)) {
                    var assemblyData = new Byte[resourceStream.Length];
                    resourceStream.Read(assemblyData, 0, assemblyData.Length);
                    return Assembly.Load(assemblyData);
                }
            };

2014年10月16日 星期四

嘗試載入oracle用戶端程式庫時傳出badimageformatexception當與具有32位元的oracle用戶端元件執行64位元模式安裝時會出現此問題

Windows 64 bit安裝 64bit Oracle Client時, 執行程式引起錯誤:
嘗試載入oracle用戶端程式庫時傳出badimageformatexception當與具有32位元的oracle用戶端元件執行64位元模式安裝時會出現此問題


解決方式:
1.下載Oracle Client 32bit免安裝版
2.設定環境變數到path

2014年10月13日 星期一

oracle like 替換



1. like 'A%'

=> instr(欄位,'A')=1




2. like '%A'

=> instr(欄位,'110101')=length(欄位)-length('A')+1







3. like '%A%'

=> instr(欄位,'2')>0

.NET Ajax TabContainer 跳回

TabContainer 設有tab1, tab2, tab3 .....

在某一tab操作時, 會跳回一開始的tab中



解決方式:
TabContainer 加入 AutoPostBack="true"

2014年10月7日 星期二

oracle client 64bit 無法執行PL\SQL

PL/SQL -> Tool -> Preferences


Oracle Client 32bit & 64bit 共存[當與具有 32 位元的 Oracle 用戶端元件執行 64 位元模式安裝時,會出現此問題]

Vistual Studio 引發錯誤
Error Message: 嘗試載入 Oracle 用戶端程式庫時傳出 BadImageFormatException。當與具有 32 位元的 Oracle 用戶端元件執行 64 位元模式安裝時,會出現此問題

Windows Path:加入oracle client 32bit的路徑

2013年5月13日 星期一

Flex call WebService



Flex 佈署時, 發生跨網域呼叫的安全性問題, 解決方式二



一、建立跨網域配置文件

內容如下:

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<site-control permitted-cross-domain-policies="all"/>
<allow-access-from domain="*" secure="false"/>
<allow-http-request-headers-from domain="*" headers="*" secure="false"/>
</cross-domain-policy>



檔名存成:crossdomain.xml
請放在Inetpub\wwwroot內

二、程式內透過Security.loadPolicyFile(http://xxx/crossdomain.xml);

2013年3月28日 星期四

動態加入CSS & Javascript

Master page:
css
<link href="~/Plugins/Css/Style.css" rel="stylesheet" type="text/css" /> //可直接加~/

Javascript
<script type="text/javascript" src='<%#ResolveUrl("~/Plugins/Js/JScript.js") %>'></script> //使用ResolveUrl即可

Master page cs:
     //不重新bind會有javascript error
    protected override void OnLoad(EventArgs e) {
        base.OnLoad(e);
        Page.Header.DataBind();
    }

2012年11月5日 星期一

OAuth 2.0

1) Register your application into Google to have client ID & secrete key
   
2) Login here : https://code.google.com/apis/console/
  
3) App Access : Create ID

4) Web.Config add :


5) xxx.cs
        public string Email_address = "";
        public string Google_ID = "";
        public string firstName = "";
        public string LastName = "";
        public string Client_ID = "";
        public string Return_url = "";
        public string Picture = "";
        protected void Page_Load(object sender, EventArgs e) {
            if (!this.IsPostBack) {
                Client_ID = ConfigurationSettings.AppSettings["google_clientId"].ToString();
                Return_url = ConfigurationSettings.AppSettings["google_RedirectUrl"].ToString();
            }
        
                if (Request.QueryString["access_token"] != null) {
                    String URI = "https://www.googleapis.com/oauth2/v1/userinfo?access_token=" + Request.QueryString["access_token"].ToString();
                    WebClient webClient = new WebClient();
                    Stream stream = webClient.OpenRead(URI);
                    string b;
                    using (StreamReader br = new StreamReader(stream)) {
                        b = br.ReadToEnd();
                    }
                    b = b.Replace("id", "").Replace("email", "");
                    b = b.Replace("given_name", "");
                    b = b.Replace("family_name", "").Replace("link", "").Replace("picture", "");
                    b = b.Replace("gender", "").Replace("locale", "").Replace(":", "");
                    b = b.Replace("\"", "").Replace("name", "").Replace("{", "").Replace("}", "");
                    Array ar = b.Split(",".ToCharArray());
                    for (int p = 0; p < ar.Length; p++) {
                        ar.SetValue(ar.GetValue(p).ToString().Trim(), p);
                    }
                    Google_ID = ar.GetValue(0).ToString();
                    Email_address = ar.GetValue(1).ToString();
                   
                    firstName = ar.GetValue(4).ToString();
                    LastName = ar.GetValue(5).ToString();
                    Picture = ar.GetValue(7).ToString();
                }

        }


ref 1:https://developers.google.com/accounts/docs/OAuth2#basicsteps

2012年10月19日 星期五

Eval & Bind

GridView中取得資料值寫法

Eval:資料唯讀顯示
      <%# Eval("欄位名稱") %>  => 調用DataBinder.Eval
     .NET 1.0 舊寫法 DataBinder.Eval(Container.DataItem,"欄位名稱")
     建議使用新的寫法

DataItem:
      <%#((DataRowView)Container.DataItem)["欄位名稱"] %> 效能最佳

Bind:資料為雙向互動, 具有Insert, Update, Delete功能
      <%# Bind("欄位名稱") %>
   
 

Google-Gadget


Gadget XML Format



Ref:https://developers.google.com/gadgets/docs/xml_reference

3-tier

Process of Apply:



2012年8月13日 星期一

二個月

本名:奈美姬號
父犬:七寶黑富士
母犬:黑 嘛 糬
出生:2012.4.29
作出:二代五七犬舍


臥房(衣櫃、床、床頭櫃、梳妝台、椅子)

1)先將地板上擺設傢俱規劃清楚
2)衣櫃(順序先草稿平面, 由裡畫到外)
  • 天花板下降1.5cm, 取得點T1
  • T1水平線與衣櫃寬度垂直線交叉點(T2)
  • 接下來就是從B~T1 & B~T2的延伸
  • 延伸後的虛線再與衣櫃外面的垂直線交接

2012年8月12日 星期日

臥房(衣櫃、床、床頭櫃、梳妝台及電視櫃)


1)傢具的擺放-可透過地格先描繪位置(決定傢具的寬度及長度)
2)從裡面虛線矩形決定傢俱高度
3)透過點(A)再延伸每個高度

2012年8月9日 星期四

天花板


1)下降1cm, (B)延伸出去, 再與牆交接待畫出水平線(如順序2)
2)下降1cm的點, 水平延伸, 與中線交叉一點(如順序3), 連接此點與B延伸
3)交叉後往上0.5公分, 再畫出水平線, 過中線往右0.5cm, 畫出垂直線

床 & 床頭櫃


1):地板2, 高度取1.5cm, 長度取地板 4 , 寬度取3.5
2)床頭櫃:約抓高於床0.3~0.5cm高度