搜尋此網誌

2011年8月23日 星期二

常用的CSS語法(陸續補充)

當美工不給力時~是PG的悲哀~所以做些紀錄已備後查



  -------------------------------A1
  A3    B                                   A4
  -------------------------------A2

margin-top(table 使用)
A1與B的距離
ex: margin-top: 5px;

margin-bottom(table 使用)
A2與B的距離
ex: margin-bottom: 5px;


margin-left(table 使用)

A3與B的距離
ex: margin-bottom: 5px;


margin-right(table 使用)

A4與B的距離
ex: margin-bottom: 5px;

padding
2個tr間的距離(對應cellspacing)
ex:padding:2px; 


font-size
字體大小
ex:font-size:10pt;

font-family
字型
ex:font-family:微軟正黑體;


line-height 
文字行距

letter-spacing
文字間距

td強制換行
參考:http://www.cftea.com/c/2009/01/qpdzu40mnw8fyyg3.asp
style='word-break:break-all;'





2011年8月22日 星期一

常用的function(陸續補充)

NET
查當月天數
***********************************************************
DateTime.DaysInMonth(DateTime.Now.Year,DateTime.Now.Month);
***********************************************************
查檔案存在否
***********************************************************
My.Computer.FileSystem.FileExists
***********************************************************
查資料夾
***********************************************************
Directory.Exists
***********************************************************

刪除
***********************************************************
File.Delete(路徑)
***********************************************************
複製

***********************************************************
 File.Copy(新的路徑+檔名,舊的路徑+檔名, True)
 True 表覆蓋
***********************************************************




HTML
location.href 跟 location.replace差異
***********************************************************
簡單說就是 location.replace換頁後(EX:A>B>C)
 B到C假如用 location.replace 那麼C的上一頁會回到A非B
參考網址:http://blog.miniasp.com/post/2009/03/25/location-href-and-location-replace-in-practice.aspx
註記: location.replace只能使用在前端後端直接呼叫會失效網頁還是會轉上一頁還是會跑進去

location.replace使用在後端的方法
(一)
前端網頁裡增加function

  function replaceUrl()
  {
       var len = history.length;
       history.go(-len);
       location.replace('AAA.aspx');
   }

後端
作完判斷後呼叫
Page.ClientScript.RegisterStartupScript(Page.GetType(), "alert", "replaceUrl();", true);
註記:該方法聽說只能用在IE
IE測試後是OK的但其他IE就沒試過
參考網址
http://blog.miniasp.com/post/2009/03/How-to-clear-browser-history-by-using-JavaScript.aspx
http://tw.myblog.yahoo.com/sbksheen.tw/article?mid=402&next=399&l=f&fid=17
(二)
ScriptManager.RegisterClientScriptBlock(Control, this.GetType(), "click", "location.replace('目標網頁')", true);
***********************************************************



JavaScript
限制輸入
***********************************************************
來源網址:http://www.cnblogs.com/prolifes/articles/1235566.html
onkeyup="this.value=this.value.replace(/[^a-z_-]/g,'')" //限制只能输入英文字母和_和- 
onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')" //只能输入中文 
onkeyup="if(isNaN(value)){alert('只能输入有效数字');execCommand('undo');}"//只能输入有效数字 onkeyup="if(!value.match(new RegExp('^[0-9]+$'))){alert('只能输入数字');this.value='';}"//只能输入整数

NET寫法:
TEXTBOX1.Attributes.Add("onkeyup", "this.value=this.value.replace(/[^a-z_-]/g,'')");   

正则表达式
"^\\d+$"  //非负整数(正整数 + 0) 
"^[0-9]*[1-9][0-9]*$"  //正整数 
"^((-\\d+)|(0+))$"  //非正整数(负整数 + 0) 
"^-[0-9]*[1-9][0-9]*$"  //负整数 
"^-?\\d+$"    //整数 
"^\\d+(\\.\\d+)?$"  //非负浮点数(正浮点数 + 0) 
"^(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*))$"  //正浮点数 
"^((-\\d+(\\.\\d+)?)|(0+(\\.0+)?))$"  //非正浮点数(负浮点数 + 0) 
"^(-(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*)))$"  //负浮点数 
"^(-?\\d+)(\\.\\d+)?$"  //浮点数 
"^[A-Za-z]+$"  //由26个英文字母组成的字符串 
"^[A-Z]+$"  //由26个英文字母的大写组成的字符串 
"^[a-z]+$"  //由26个英文字母的小写组成的字符串 
"^[A-Za-z0-9]+$"  //由数字和26个英文字母组成的字符串 
"^\\w+$"  //由数字、26个英文字母或者下划线组成的字符串 
"^[\\w-]+(\\.[\\w-]+)*@[\\w-]+(\\.[\\w-]+)+$"    //email地址 
"^[a-zA-z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?$"  //url

***********************************************************


轉貼關閉視窗不彈訊息
***********************************************************
window.opener=null;
window.open('','_self');
window.close();


資料來源:【topcat姍舞之間的極度凝聚】 http://www.dotblogs.com.tw/topcat/archive/2011/06/29/30443.aspx
***********************************************************


Mailto
***********************************************************

<a href="mailto:?subject=主旨&body=" onclick="this.href+=window.location.href" ></a>
***********************************************************


視窗關閉,假如選否轉換頁面選是視窗關閉
***********************************************************

<a href="javascript:document.body.style.display='none';
location.replace('http://tw.yahoo.com/');window.close();">
***********************************************************

Dos

 查port有無開啟
***********************************************************
 netstat -a
***********************************************************

2011年8月14日 星期日

excel 轉 datatable


 public DataTable ExcleToDt(String filePath)
{
   //filePath 檔案路徑
   //sheetName 預設工作表名稱
   string sheetName="Sheet1";
    int i;
    StreamWriter StreamWriterObj;
    OleDbConnection objConn ;
    DataTable dt;
    DataTable dt2=new DataTable() ;
    ArrayList ary=new ArrayList() ;
    try
    {
        DataSet myDataset=new DataSet(); 
        string strConn;
            
        //xls
         //strConn = "Provider='Microsoft.Jet.OLEDB.4.0';" + "Data Source='" + filePath + "';Extended 
         //Properties='Excel 8.0;IMEX=1;HDR=NO;'";
         //HDR=NO 表轉入後第一行為欄位名稱 主要是判斷該EXCEL欄位有無缺少
        //可讀xlsx
        strConn = "Provider='Microsoft.Ace.OleDb.12.0';" + "Data Source='" + filePath + "';Extended Properties='Excel      
       12.0;IMEX=1;HDR=NO;'";
       //使用可讀xlsx前需先下載安裝Microsoft Access Database Engine 2010 可轉散發套件
       //http://www.microsoft.com/downloads/zh-tw/details.aspx?familyid=C06B8369-60DD-4B64-A44B-  
      //84B371EDE16D&displaylang=zh-tw


         objConn = new OleDbConnection(strConn);
         objConn.Open();
         dt = objConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,null);
         if (dt.Rows.Count >1)
        {
             foreach (DataRow row in dt.Rows)
             {
                  if (row["TABLE_NAME"].ToString().IndexOf("$") !=  -1 )
                 {
                     if (row["TABLE_NAME"].ToString().IndexOf("交付表格") != -1 || 
                     row["TABLE_NAME"].ToString().IndexOf("sheet1") != -1)
                     {
                          ary.Add(row["TABLE_NAME"]);
                      }
                  }
             }
             }
       sheetName = ary[0].ToString() ;
       OleDbDataAdapter myData =new OleDbDataAdapter("SELECT * FROM [" + sheetName + "]", 
       strConn); 
       myData.TableMappings.Add("Table", "ExcelTest");
       myData.Fill(myDataset);
       for (int ii  = 0 ;ii<= myDataset.Tables[0].Columns.Count - 1;ii++)
       {
             if (myDataset.Tables[0].Rows[0][ii].ToString() == string.Empty)
            {
                 break  ;
             }
             if (myDataset.Tables[0].Rows[0][ii].ToString()  == "EXCEL上的中文名稱1" )
            {
                 myDataset.Tables[0].Columns[ii].ColumnName = "AAA";
             }
            else if (myDataset.Tables[0].Rows[0][ii].ToString() == "EXCEL上的中文名稱1")
            {
                 myDataset.Tables[0].Columns[ii].ColumnName = "BBB";
             }
       }
       dt2 = myDataset.Tables[0];
       objConn.Close();
          
   }
   catch
   {
    }
    return dt2;
   }    

2011年8月10日 星期三

ASP.NET Oracel 資料庫的連結應用(新增修改刪除)


//無Transaction
int irow = 0;            
//連線資訊
OracleConnection cn = new    
OracleConnection(System.Configuration.ConfigurationManager.AppSettings["XXXX"]);
OracleCommand Cmd = new OracleCommand();          
Cmd.CommandText = SQL;
Cmd.Connection = cn;
cn.Open();          
try
   {
       irow = Cmd.ExecuteNonQuery();              
      cn.Close();
      if (irow != -1)
      {
           return true;
       }
       else
       {
           return false;
        }
    }
catch(Exception ex)
  {
      cn.Close();
      return false;
  }

//Transaction

 int irow = 0;
OracleConnection cn = new OracleConnection(System.Configuration.ConfigurationManager.AppSettings["XXX"]);
OracleCommand Cmd = new OracleCommand();
OracleTransaction objTransaction;
cn.Open();
Cmd.Connection = cn;          
objTransaction = cn.BeginTransaction(IsolationLevel.ReadCommitted);
Cmd.Transaction = objTransaction;
 try
  {
     Cmd.CommandText = SQL;
      irow = Cmd.ExecuteNonQuery();
      objTransaction.Commit();
      cn.Close();
      if (irow != -1)
         {
             return true;
         }
      else
        {
            return false;
        }
  }
  catch (Exception ex)
  {
      objTransaction.Rollback();
      cn.Close();
   }

2011年8月4日 星期四

ASP.NET Oracel 資料庫的連結應用(查詢)

為了怕下次開新專案又要重新寫一次~還是在這稍微記錄一下好了
web.config
<add key="ConnectionString" value="server=XXXX;data source=XXX;user    id=XXX;password=XXX"/>
程式方面
using System.Data.OracleClient;
using System.Data.OracleClient;


public DataSet SQlExecuteReader(string SQL)
{
  DataSet ds = new DataSet();
  try
  {
    OracleDataAdapter DReader = new OracleDataAdapter();
    OracleConnection cn = new  OracleConnection       
    (System.Configuration.ConfigurationManager.AppSettings["ConnectionString"]);
    OracleCommand Cmd = new OracleCommand();
    Cmd.CommandText = SQL;
    Cmd.Connection = cn;
    cn.Open();
    DReader = new OracleDataAdapter(Cmd);
    cn.Close();
     DReader.Fill(ds);                
  }
  catch (Exception ex)
  {
      cn.Close(); 
  }
  return ds;
}


2011年8月3日 星期三

window server2008 檔案寫入權限設定

參考網址:
http://ashiang.blogspot.com/  
下的
有關IIS7.5 Application Pool Identity的設定

做法:
將需要可寫入的檔案案右鍵-->內容-->安全性-->編輯-->新增-->進階
選擇:NETWORK SERVICE
然後再給他修改跟寫入權限即可