文章分類

C# (27) ASP.NET (13) SQL (7) ORACLE (5) JAVA (2) SQLSERVER2008 (2) 大家都在問的事 (2) ACCESS (1) ANDRIOD (1) JQUERY (1) python (1) 雜談 (1)

關於我自己

我的相片
程式初心者 JAVA, ASP.NET, C# ,SQL

2012年12月17日 星期一

【ASP.NET】DATATABLE用法

1.建立DataTable
Datatable dt=new Datatable();

2.加入欄位
dt.columns.Add("A1");
dt.columns.add("B1");

3.加入有型態的欄位
dt.Columns.Add("IsSelected", System.Type.GetType("System.Boolean"))//加入CHECKBOX
dt.Columns.Add("column0", System.Type.GetType("System.String"));//指定為STRING
dt.Columns.Add("column0", System.Type.GetType("System.Int32")); //指定為數字
4.塞入DATATABLE的值
Datarow dr=dt.Newrow(); 
dr["A1"]="XX";
dr["B1"]="XX";
 dt.Rows.Add(dr);

5.指定主鍵
DataTAble
DataTable.PrimaryKey = new DataColumn[] {DataTable.Columns["A1"], 
DataTable.Columns["B1"]};< /pre> 或是
DataColumn[] keyColumn = new DataColumn[2];
keyColumn[0] = DataTable.Columns["A1"];
keyColumn[1] = DataTable.Columns["B1"];
DataTable.PrimaryKey = keyColumn;

6.指定TABLENAME
dt.Tablename="xxx";
//或在建立datatable時指定
Datatable dt=new Datatable("xxx");

2012年10月24日 星期三

【JQUERY】JQUERY新手筆記(一) ---簡介

1.為何要使用JQEURY
  •     更高的使用者網頁互動(就是一堆外加特效)
  •     更高的相容性
  •     動態更新不用刷新頁面(JQUERY AJAX, 更好的AJAX存取方式)
  •     另一個最大的使用理由, 就是很棒的特效都己經有人寫好了, 直接拿來用即可
  •     如果你曾被JAVASCRIPT嚇到挫屎, 這個可幫助你減低壓力, 帶來更好的睡眠


2.什麼是JQUERY
    JQUERY就是JAVASCRIPT的簡化版, 想要學習JQUERY你可能需要回答出來一些問題你
   才能繼續
  •       CSS是什麼? 能吃嗎
  •       HTML是什麼? 能吃嗎?
  •       JAVASCRIPT是什麼? 能吃嗎?
 如果這三個問題你都可以答的出來, 並有一些概念可以寫出簡單的東西, 那學習JQUERY應該是可以上手了吧!!!!!??(疑


3.JQUERY IDE(開發工具)
  •    VISUAL STUDIO .NET(需有VSDOC.JS檔)
  •    Aptana Studio 3
  •    FIREFOX+FIREBUG(以及其它外掛)
  •    ECLIPSE外掛JQUERY
  •    NET BEANS 外掛JQUERY
  •    ixedit傻瓜 Jquery產生器

4.下載並使用Jquery 官網
    
   下載JQUERY安裝包, 下載時請注意, 有兩個版本可以選擇一個是PRODUCTION(精簡版)另
   一個是DEVELOPMENT(開發版)版本, 兩個都可以下載, PRODUCTION是精簡版的
   JQUERY, 兩個都可以用有差別的是, 精簡版就是PERODCTION的簡化版, 裡面的關鍵字都
   簡化成代號, 所以是看個不懂的東西, 兩個都下載, 也沒關係,點下載是一堆程式碼, 可以另
  存新檔,如下圖。


















下載回來是兩個檔案, JQUERY.1.8.2.JS,和 JQUERY.1.8.2.MIN.JS(min是自己加的)

如題, 這是一個新手筆記, 我會把我所學的一一po上來。
接下來會有簡單的JQUERY範例教學
以後將會以ASP.NET+EASYUI+JQUERY做為教學

EASY UI

【設定】當IIS7抓不到FRAMEWORK版本

如果先裝了.NET FRAMEWORK2.0以上版本(或先裝了VISUAL STUDIO2010,2012)
再回去安裝IIS完成後, 會發現IIS抓不到.NET FRAMEWORK版本
這時候只能再重新安裝FRAMEWROK, 但是重裝很麻煩, 所以只要一行指令就可以解決了

在DOS模式下打

aspnet_regiis -ir

IIS再重啟就可以抓到囉

2012年10月18日 星期四

【雜記】FIREFOX快速下載YOUTUBE影片或音樂


因為實在太多人問我這個問題了, 所以寫一篇快速教學......
STEP1. 從FIREFOX網站下載FIREFEOX瀏灠器


STEP2.安裝瀏灠器....下載回來的檔案如下圖所示, 點兩下安裝






STEP3.開啟FIREFOX瀏灠器,並到附加元件網站, 安裝附加元件
            EASY YOUTUBE DOWNLOAD~~

按下後會跳出這個頁面選立即安裝















安裝成功會跳出這個提示訊息
STEP4.前往YOUTUBE網站,就可以看到影片下方出現DOWNLOAD, 可以選擇下載類型,大功告成。

附帶一提CHROME瀏灠器也有這樣的功能, 開心使用吧!!

2012年5月31日 星期四

【ASP.NET】預設第一筆資料為空白

就是怎麼要在下拉選項中,一開始 DataBind() 資料繫結時,
就先出現預設選項 請選擇,其實做這個非常簡單,在很久很久以前 Dotjum 一開始不太懂,就用了奇怪的方法來達成,
因位DataBind後,你先輸入的靜態選項 清單中的項目 會消失,所以很久以前  Dotjum 就弄了一個在資料 DataSet 叫回來之後,
再弄一筆 請選擇的資料上去 不然就是 等 DropDownList DataBind 後,在動態的加一筆資料進去。
Dotjum 還曾經看過,有人為了這個弄了一個 Control 出來,請注意上述這幾種方法,千萬不要在使用了
因為ASP.NET已經有更簡單的方式了,話不多說,請看說明
Step1. 在 DropDownList 請將 AppendDataBoundItems 設定為 true
Step2. 設定一個項目為預設選項 ex:請選擇 0
<asp:DropDownList ID="DropDownList1" runat="server" AppendDataBoundItems="True" DataMember="DefaultView" DataSourceID="SqlDataSource3" DataTextField="鄉鎮區市名稱" DataValueField="縣市代號" Width="186px"> <asp:ListItem Value="0">請選擇</asp:ListItem> </asp:DropDownList>
Step3.再加上一個  RequiredFieldValidator 驗證該 DropDownList 必且設定若初始值 0 (這邊是你可以依照狀況來設定的)
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="DropDownList1" ErrorMessage="請選擇項目" InitialValue="0"></asp:RequiredFieldValidator>
OK~就這樣簡簡單單三個步驟,您就能夠做出一個具有 DataBind 而且還會出現 請選擇,而且若 POSTBACK 發現他是沒選任何值,還能夠
做出檢查的功能。
而這邊Dotjum要跟大家說一個延伸的小地方,就是他是不限定在 DropDownList 因為你要想DropDownList 也是由 ListItem 為項目,
所以呢!這個功能只要是ListItem的項目都能使用,像是 ListBox DropDownList  CheckBoxList  RadioButtonList BulletedList

所以不侷限在 DropDownList ~

2012年3月16日 星期五

【C#】 存取WORD中文字區域的文字

要寫一個簡單的程式去WORD去SEARCH一些文字方塊中的特定字串並取代新字串,再印出來
簡單的範例如下..

記得先參考Microsoft Word 12.0 Object library或Microsoft Word 13.0 Object library
Microsoft Word 14.0 Object library(對映office版本)
 
 
using System.IO;
using System.Data.OleDb;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Collections;
using System.Windows.Forms;
using Word = Microsoft.Office.Interop.Word;
using System.Reflection;
using Microsoft.Office.Interop.Word;
using System.Threading;
/* 中略 */
 #region 取代WORD主程式
 #region 取代文字FUNCTION(被呼叫的FUN)
        public void exchange(string oldstring, string newstring, ref Word._Document oDoc,ref 
        Word._Application oWord) 
        {
            #region 文字區域
            string oldStr = oldstring;//被取代的文字
            string newStr = newstring;//要放入的文字
            object replaceAll = Word.WdReplace.wdReplaceAll;
            object missing = Type.Missing;

            oWord.Selection.Find.ClearFormatting();
            oWord.Selection.Find.Text = oldStr;

            oWord.Selection.Find.Replacement.ClearFormatting();
            oWord.Selection.Find.Replacement.Text = newStr;

            oWord.Selection.Find.Execute(
                ref missing, ref missing, ref missing, ref missing, ref missing,
                ref missing, ref missing, ref missing, ref missing, ref missing,
                ref replaceAll, ref missing, ref missing, ref missing, ref missing);
            #endregion

            #region 文本框
            StoryRanges sr = oDoc.StoryRanges;
            foreach (Range r in sr)
            {
                Range r1 = r;
                if (WdStoryType.wdTextFrameStory == r.StoryType)
                {
                    do
                    {
                        r1.Find.ClearFormatting();
                        r1.Find.Text = oldStr;

                        r1.Find.Replacement.ClearFormatting();
                        r1.Find.Replacement.Text = newStr;

                        r1.Find.Execute(
                            ref missing, ref missing, ref missing, ref missing, ref missing,
                            ref missing, ref missing, ref missing, ref missing, ref missing,
                            ref replaceAll, ref missing, ref missing, ref missing, ref missing);

                        r1 = r1.NextStoryRange;
                    } while (r1 != null);
                }
            }
            #endregion
        
        
        
        
        
        }
        #endregion

        //此為主程式
        public void change_wordDOC(System.Data.DataTable dt,int NUM,string filenameDoc,
        string ADDRESS)
        {
            copy_doc(filenameDoc);//此為將要取代的文件複製到另一個資料夾再處理,省略內容..

            string[] str_list = new string[] { "AAA", "BBB", "CCC", "DDD", "EEE", "FFF", "GGG",
            "HHH" };//比對WORD位置
            object oMissing = System.Reflection.Missing.Value;
            Word._Application oWord;
            Word._Document oDoc;
            oWord = new Word.Application();
            oWord.Visible = false;//背景處理不開啟word介面


            // 打開文件:
            string filename_root = System.Windows.Forms.Application.StartupPath + @"\DOC2\" 
            + filenameDoc;
            object fileName = System.Windows.Forms.Application.StartupPath + @"\DOC2\"
            + filenameDoc;

            oDoc = oWord.Documents.Open(ref fileName,
            ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
            ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
            ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing);


            for (int i = 0; i < NUM; i++)
            {
                exchange(str_list[i].ToString(), dt.Rows[0][i].ToString(), ref oDoc, ref oWord); 
               //呼叫取代字串的函數  exchange(要被取代的字串,要取代的字串,
               開啟Word._Document  ,開啟的Word._Application) 
 
            }
            exchange("ADDRESS", ADDRESS, ref oDoc, ref oWord);

            //oDoc.PrintPreview();//可以顯示word預覽列印
           

            oDoc.PrintOut(ref oMissing, ref oMissing, ref oMissing, ref oMissing,
            ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
            ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
            ref oMissing, ref oMissing, ref oMissing, ref oMissing);
            Thread.Sleep(3000);

             MessageBox.Show("列印完成");
            oDoc.Close(ref oMissing, ref oMissing, ref oMissing);//關閉文件
             oWord.Quit(ref oMissing, ref oMissing, ref oMissing);//關閉WORD
            
        }

        #endregion

2012年3月15日 星期四

【雜談】工程師寫程式時的基本SENSE

1.向USER確認需求

    在設計架構與流程時, 和使用者的需求一定是必要的,此時要充份的溝通, 不要一味的聽從使用者, 有時候這個階段比較像是要教育使用者, 什麼是系統正確的流程與架構,如果你的專業知識不夠強大,可以請求PM的介入,雙方要有一定的共識才可以動手寫程式,否則往後就是個無止境的黑洞。

2.確認你系統撰寫工具

    程式語言百百種,選擇開發的程式語言, 資料庫與相關技術的使用, 這也是需要和USER協商的部份(後續維護), 並注意你的程式是否能滿足先前需求訪談的架構需求。

3.確認系統環境
 
   是WIN7, WINXP,SERVER ,32位元,64位元作業系統?
   相關檔案版本?*(EX.會存取OFFICE文件)
   避免你開發的程式有相容性問題

4.開始每天都建立備份檔案
  你不知道什麼時候你的系統會掛掉, 請定期備份,網路也很發達, 上傳到免費的網路空間, 或是公司有提供BACKUP SERVER都是很好的方法

5.開始撰寫文件
  很無聊又很重要的事情,如果你有閒瑕時間一定要寫份系統文件,程式文件,基本的程式中寫註解是一定的要的, 能解釋的越清楚越好, 往後交接,查BUG都事半功倍

2012年3月6日 星期二

【SQL】WHERE 1=1, 1=0

1.WHERE 1=1
小技巧,通常在程式中可以動態的處理SQL語句的方法,
SELECT * FROM DT WHERE 1=1 和 SELECT * FROM DT 其實是一樣的東西

範例
    String a="1";
    String b="2";
   String SQL_STR="SELECT * FROM DT WHERE 1=1";
   if(String.IsNullorEmpty(a))//條件1
   {
      SQL_STR+="AND a='a'";
   }
   if(String.IsNullorEmpty(b))//條件2
   {
      SQL_STR+="AND b='b'";
   }
   //如此就算條件1, 條件2不成立, SQL_STR丟回資料庫處理時也不會產生錯誤


2.WHERE 1=0
SELECT * FROM DT WHERE 1=0 意指只傳回SELECT結果的表格結構
範例
   Create table newT AS SELECT *FROM DT1 WHERE 1=0

2012年2月28日 星期二

【ASP.NET】兩種檢查Session是否存在的方式

1.使用某session是否等於null做為檢查
#region 寫法1
   if (Session["Login_Name"] == null)
            {
                
                this.lb_ErrorMessage.Text = "請輸入帳號密碼";
                
            }
            else if (Session["Login_Name"] != null && Session["Login_Name"].ToString()!="")
            {
               
               this.lb_ErrorMessage.Text = "歡迎使用系統";
            }
#endregion
2.使用System.Web.HttpContext抓取抓取Session是否存在
#region 寫法2
 System.Web.HttpContext context = System.Web.HttpContext.Current;

                if (context.Session[sessionName] == null)
                       this.lb_ErrorMessage.Text = "請輸入帳號密碼";
                else
                   this.lb_ErrorMessage.Text = "歡迎使用系統";

2012年2月24日 星期五

【ASP.NET】CATCH和APPLICATION的不同處

請問一下各位,cache 與application的資訊都是儲存在SERVER端,多個Client共用。

除了cache 比較少用的會被系統刪掉,但是application不會之外,還有什麼不同。

感覺cache 與application蠻像的。

是否正是這個原因,所以我們讀出來的資料做成cache時,用cache而少是用application。
=======================================================================
1. cache 可以設定優先權, 優先權低的 cache, 在系統釋放記憶體的時候將最先被清除
2. cache 的到期時間可以先設定為「絕對」或「相對」, application 只有相對
3. cache 可以與資料庫或檔案設定相依性, 當資料庫或檔案有異動時, cache 會自動失效

Application 與 Cache 是 Web 應用程式層級的變數,不過 Appliction 的生命週期是跟著應用程式,而 Cache 的生命週期則比較彈性,可以自訂 Cache 釋放的時間,如指定絕對時間、相對時間或設定與檔案、資料庫的相依性。

轉貼

2012年2月16日 星期四

【ASP.NET】避免 SQL Injection 的SQL語法

何謂SQL Injection  按此
要避免的話據朋友分享有兩個方法
1.在網祉送出前,先用程式濾掉一些怪異的字元碼或是SQL指令
2.使用參數的方式撰寫SQL程式碼....
    EX:
           string sql = "SELECT * FROM xxs WHERE username = @name AND userID = @ID";      
           SqlCommand cmd = new SqlCommand(sql );
           cmd.Parameters.Add("name", SqlDbType.NVarChar).Value = "張三";
           cmd.Parameters.Add("ID, SqlDbType.Int).Value = 3;