2015年7月5日 星期日

基本連接 Oracle資料庫


首先要在 web.config
  <connectionStrings>
    <add name="OracleDB" connectionString="Data Source=(DESCRIPTION= (ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=10.XX.XX.X)(PORT=1521))) (CONNECT_DATA=(SERVER = DEDICATED) (SERVICE_NAME = vhgp)));User Id=XXX;Password=XXX;" />
  </connectionStrings>

程式碼
 DataTable DT = new DataTable();
            string connectionString = ConfigurationManager.ConnectionStrings["OracleDB"].ConnectionString;
            using (OracleConnection conn = new OracleConnection(connectionString))//建立連線物件aaa, Data Source=IP/DB_NAME;User=XXXX;Password=XXXX
            {

                conn.Open();//開始連線
                string sCondition = string.Format(@"Select recno, symptoms
                                                        from nis_admin.BASNPSY
                                                        where NURSING_ISSUE = '5'
                                                        order by NURSING_ISSUE, sort
                                                        ");
                //建立od物件接收select結果
                OracleDataAdapter OD = new OracleDataAdapter(sCondition, conn);

                OD.Fill(DT);
                //指定datagridview的datasource

                conn.Close();//結束連線
            }
            return DT;

2015年6月27日 星期六

藍光人系列



藍光人四部曲(Eldran系列)

絕對無敵,元氣爆發,熱血最強,完全勝利

7年級的台灣人最熟的應該是前面那兩部吧

畢竟"熱血最強"

那時並沒有中文化引進台灣 當時網路資源也不豐富

而"完全勝利"

只有概念影片 直接腰斬的作品...




綜合觀後感:

我不是古X莫 今天要說"四"個

藍光人射後不理 把拯救世界丟給小孩子的故事...




絕對無敵-雷神王(1991)

15人後勤+3駕駛員

鳳王+劍王+獸王 組成的雷神王

擴充機體:爆龍王

影片:

https://www.youtube.com/watch?v=aCina-6VyKI&list=PLr5iO5LhmNhjgIT1GTlx1GY--5OGCcH4g&index=1




元氣爆發-合體將軍(1992)

3個人cosplay忍者 + 1個忍者cosplay狗  +

鷹+老虎+象 組成合體將軍

擴充機體:翔翼手龍+天神獅王




熱血最強(1993)

五隻恐龍的合體機器人

出擊影片:

https://www.youtube.com/watch?v=o7kNKsw5k2k




完全勝利(2000)

(鳳王?)+機器人(劍王?)+獅子(獸...風獅爺4ni)

擴充機體:中國龍 + 龜

概念影片

https://www.youtube.com/watch?v=e10a4B8evjA

2015年5月20日 星期三

DataTable

新開一個DT 去放值
DataTable dtLeave = readLeave(sBeginDateTime, sEndDateTime, sMedNo, sChinName, sLeaveReason, this.Page, AParams);
        DataTable dtOutPut = new DataTable();//重整dt
            dtOutPut.Columns.Add(new DataColumn("MedNo", typeof(string)));
            dtOutPut.Columns.Add(new DataColumn("ChinName", typeof(string)));
            dtOutPut.Columns.Add(new DataColumn("LeaveDateTime", typeof(string)));
            dtOutPut.Columns.Add(new DataColumn("LeaveReason", typeof(string)));
            dtOutPut.Columns.Add(new DataColumn("CreateName", typeof(string)));
            dtOutPut.Columns.Add(new DataColumn("CreateDateTime", typeof(string)));
            dtOutPut.Columns.Add(new DataColumn("HospNo", typeof(string)));
            dtOutPut.Columns.Add(new DataColumn("CaseSeq", typeof(string)));
            dtOutPut.Columns.Add(new DataColumn("LeaveSeq", typeof(string)));
            for (int i = 0; i < dtLeave.Rows.Count; i++)
            {
                DataRow row = dtOutPut.NewRow();
                row["MedNo"] = dtLeave.Rows[i]["MedNo"].ToString();
                row["ChinName"] = dtLeave.Rows[i]["ChinName"].ToString();
                row["LeaveDateTime"] = HISDateTime.ReportDateTime(HISDateTime.DateTimeString(dtLeave.Rows[i]["BeginDateTime"].ToString())) + "~" + HISDateTime.ReportDateTime(HISDateTime.DateTimeString(dtLeave.Rows[i]["EndDateTime"].ToString()));//更改日期格式
                row["LeaveReason"] = dtLeave.Rows[i]["LeaveReason"].ToString();
                row["CreateName"] = dtLeave.Rows[i]["CreateName"].ToString();
                row["CreateDateTime"] = HISDateTime.ReportDateTime(HISDateTime.DateTimeString(dtLeave.Rows[i]["CreateDateTime"].ToString()));//紀錄時間
                row["HospNo"] = dtLeave.Rows[i]["HospNo"].ToString();
                row["CaseSeq"] = dtLeave.Rows[i]["CaseSeq"].ToString();
                row["LeaveSeq"] = dtLeave.Rows[i]["LeaveSeq"].ToString();
                dtOutPut.Rows.Add(row);
            }

拿舊的增加
DataTable dtLeave = readLeave(sBeginDateTime, sEndDateTime, sMedNo, sChinName, sLeaveReason, this.Page, AParams);
dtLeave.Columns.Add(new DataColumn("LeaveDateTime", typeof(string)));
            for (int i = 0; i < dtLeave.Rows.Count; i++)
            {
                DataRow row = dtLeave.NewRow();
                dtLeave.Rows[i]["LeaveDateTime"] = HISDateTime.ReportDateTime(HISDateTime.DateTimeString(dtLeave.Rows[i]["BeginDateTime"].ToString())) + "~" + HISDateTime.ReportDateTime(HISDateTime.DateTimeString(dtLeave.Rows[i]["EndDateTime"].ToString()));//更改日期格式

            }

2015年5月19日 星期二

UpdatePanel 控制pancel 範例

    <form id="form1" runat="server">
        <div>
            <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager> //必加

            <asp:DropDownList ID="ddlType" runat="server" OnSelectedIndexChanged="ddlType_SelectedIndexChanged" AutoPostBack="True">
                <asp:ListItem Value="1">test01</asp:ListItem>
                <asp:ListItem Value="2">test02</asp:ListItem>
                <asp:ListItem Value="3">test03</asp:ListItem>
            </asp:DropDownList>


            <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
                 <Triggers>
                    <asp:AsyncPostBackTrigger ControlID="ddlType" EventName="SelectedIndexChanged" /> //這裡的設定要去 On
                </Triggers>
                <ContentTemplate>
                    <asp:Panel ID="Panel1" runat="server" Visible="False">
                        <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
                    </asp:Panel>
                    <asp:Panel ID="Panel2" runat="server" Visible="False">
                        <asp:Label ID="Label2" runat="server" Text="Labe2"></asp:Label>
                    </asp:Panel>
                    <asp:Panel ID="Panel3" runat="server" Visible="False">
                        <asp:Label ID="Label3" runat="server" Text="Labe3"></asp:Label>
                    </asp:Panel>
                </ContentTemplate>
             
            </asp:UpdatePanel>

        </div>
    </form>

.cs :

protected void ddlType_SelectedIndexChanged(object sender, EventArgs e)
        {
            switch (ddlType.SelectedValue)
            {
                case "1":
                    Panel1.Visible = true;
                    Panel2.Visible = false;
                    Panel3.Visible = false;
                    break;
                case "2":
                    Panel1.Visible = false;
                    Panel2.Visible = true;
                    Panel3.Visible = false;
                    break;
                case "3":
                    Panel1.Visible = false;
                    Panel2.Visible = false;
                    Panel3.Visible = true;
                    break;
                default:

                    break;
            }


        }

AJAX Control Toolkit - CascadingDropDown

前言  基本上AJAX Control Toolkit是根據ASP.NET的原件為基礎 開發的外掛物件 核心以TargetControlID作為連結
下面介紹的是CascadingDropDown這元件
.aspx :

<asp:DropDownList ID="ddlType" runat="server">
</asp:DropDownList> //
//主要介紹是下面這個 CascadingDropDown 如果沒這元件 可以去下載
AJAX Control Toolkit  :   http://ajaxcontroltoolkit.codeplex.com/  

               <cc1:CascadingDropDown ID="CascadingDropDown1" runat="server"
                Category="SystemID" Enabled="True" LoadingText="讀取中..."
                PromptText="請選擇系統類別" ServicePath="UCWebService1.asmx" //需要連結
                ServiceMethod="GetSysTemType"  //函式名稱  UseContextKey="True"
                TargetControlID="ddlType" //連到上面的ddl  />



接下來加入新項目
Web服務  附檔名是 .asmx 即是上面要連結的頁面

public CascadingDropDownNameValue[] GetSysTemType(string knownCategoryValues, string category)
        {
            List<CascadingDropDownNameValue> values = new List<CascadingDropDownNameValue>();

            values.Add(new CascadingDropDownNameValue("test01", "1"));
            values.Add(new CascadingDropDownNameValue("test02", "2"));
            values.Add(new CascadingDropDownNameValue("test03", "3"));

            return values.ToArray();
        }

很重要的地方 上面有一行自行產生的

 // 若要允許使用 ASP.NET AJAX 從指令碼呼叫此 Web 服務,請取消註解下列一行。
  //   [System.Web.Script.Services.ScriptService]
是的 要把註解拿掉 否則部會成功的








2015年5月17日 星期日

日期運算

//字串轉日期
DateTime startDate = DateTime.ParseExact( "20150518" , "yyyyMMdd", null);

//DateTime轉"數字" toString 的 d 去掉 就變成 英文
 string sTomorrowCircleValueW = dtTomorrowDate.DayOfWeek.ToString("d");//1 2 3 4 5 6 0(日)

//日期是該年第幾周
public int GetWeekOfYear(DateTime dt)
        {
            GregorianCalendar gc = new GregorianCalendar();
         
            return gc.GetWeekOfYear(dt, CalendarWeekRule.FirstDay, DayOfWeek.Monday);
 }

//兩日期之間共有幾周
public int week(DateTime start, DateTime end)
        {

            if (start > end) return -week(end, start);

            else
            {

                int count = 0;

                DateTime p = start;

                while (p < end)
                {

                    if (p.DayOfWeek == DayOfWeek.Sunday) count++;

                    p = p.AddDays(1);

                }

                return count;

            }

        }

C#分割字串

string x = 要分割字串.Substring(0,4) ;//從0開始取4碼

string[] x = 要分割字串.Split(',');//遇到逗號分割