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年6月8日 星期一
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;
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 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);
}
};
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
嘗試載入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"
在某一tab操作時, 會跳回一開始的tab中
解決方式:
TabContainer 加入 AutoPostBack="true"
2014年10月7日 星期二
Oracle Client 32bit & 64bit 共存[當與具有 32 位元的 Oracle 用戶端元件執行 64 位元模式安裝時,會出現此問題]
Vistual Studio 引發錯誤
Error Message: 嘗試載入 Oracle 用戶端程式庫時傳出 BadImageFormatException。當與具有 32 位元的 Oracle 用戶端元件執行 64 位元模式安裝時,會出現此問題
Windows Path:加入oracle client 32bit的路徑
Error Message: 嘗試載入 Oracle 用戶端程式庫時傳出 BadImageFormatException。當與具有 32 位元的 Oracle 用戶端元件執行 64 位元模式安裝時,會出現此問題
Windows Path:加入oracle client 32bit的路徑
2014年2月23日 星期日
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
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
2) Login here : https://code.google.com/apis/console/
3) App Access : Create ID
4) Web.Config add :
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("欄位名稱") %>
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日 星期一
臥房(衣櫃、床、床頭櫃、梳妝台、椅子)
1)先將地板上擺設傢俱規劃清楚
2)衣櫃(順序先草稿平面, 由裡畫到外)- 天花板下降1.5cm, 取得點T1
- T1水平線與衣櫃寬度垂直線交叉點(T2)
- 接下來就是從B~T1 & B~T2的延伸
- 延伸後的虛線再與衣櫃外面的垂直線交接
2012年8月12日 星期日
訂閱:
文章 (Atom)












