Thursday, October 30, 2014

覓幽蘭

很像山歌的福智讚頌
靜靜的你 開放在幽谷 空中飄逸著清香ww
乘著涼風 乘著白雲 不知不覺地 流布人間

芬芳的你 搖曳在風中 在綠茵的草原綻放
明月流光 青山陪伴 在謐靜的夜裡微笑

在滿天的星光中尋覓 在徹夜的夢境中呼喚
穿過山林的幽徑 度過冰清的小溪
尋覓你曠谷的幽蘭

在滿天的芬芳中尋覓 在徹夜的夢境中呼喚
穿過山林的幽徑 度過冰清的小溪
尋覓你曠谷的幽蘭

Wednesday, October 29, 2014

[Win] 陰影複製

紀錄 Windows Server 2012 R2 的陰影複製設定

陰影複製說明:
  • 存取舊版本資料和救回刪除檔案
  • 可以排程定期追蹤磁碟上的檔案異動
  • 不能用來取代備份
圖一:陰影複製是針對磁碟進行設定,選定目標磁碟

[Win] 陰影複製-1

Tuesday, October 28, 2014

[C#] TreeView

利用組織圖來練習 ASP.NET TreeView 控件,主要是應用 SQL Server CTE 語法組成名稱路徑配合 ValuePath 屬性來完成 TreeView
  • SQL Server 資料建立
原始資料截圖

[C#] TreeView-1

Monday, October 27, 2014

[C#] DataGridView 中顯示圖片

論壇問題
如何在datagridview 中讓使用者自行放入圖片?
using System.IO;

namespace GridImage
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            // 建立資料來源
            DataTable dt = new DataTable("Demo");
            dt.Columns.Add("ID", typeof(int));
            dt.Columns.Add("FileName", typeof(string));
            dt.Columns.Add("Photo", typeof(Image));

            // image00.jpg 內容是"未上傳"字樣
            dt.Rows.Add("1", "",Image.FromFile(@"D:\image00.jpg"));
            dt.Rows.Add("2", "",Image.FromFile(@"D:\image00.jpg"));
            dt.Rows.Add("3", "",Image.FromFile(@"D:\image00.jpg"));
            dt.Rows.Add("4", "",Image.FromFile(@"D:\image00.jpg"));
            dt.Rows.Add("5", "",Image.FromFile(@"D:\image00.jpg"));
            dgvData.DataSource = dt;

            // DataGridView 基礎設定
            dgvData.AllowUserToAddRows = false;
            dgvData.SelectionMode = DataGridViewSelectionMode.FullRowSelect;

            // 設定 DataGridViewImageColumn 圖片寬度
            dgvData.Columns["ColImage"].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;

            // 設定 DataGridViewButtonColumn Text 屬性
            DataGridViewButtonColumn btncol = dgvData.Columns["ColUpload"] as DataGridViewButtonColumn;
            if (btncol != null)
            {
                // 表示全部 Button 的 Text 都顯示 "選擇圖片" 
                btncol.UseColumnTextForButtonValue = true;
                btncol.Text = "選擇圖片";
            }
        }

        private bool ImageCheck(string photopath)
        {
            // 判斷該圖檔是否存在
            if (File.Exists(photopath) == false) return false;
            // 只接受 JPG 圖檔
            if (Path.GetExtension(photopath).ToUpperInvariant() != ".JPG") return false;
            return true;
        }

        private void setImage()
        {
            OpenFileDialog OFD = new OpenFileDialog();
            OFD.FileName = "請選取圖檔";
            if (OFD.ShowDialog() != DialogResult.OK || string.IsNullOrEmpty(OFD.FileName)) return;
            string photopath = OFD.FileName;
            if (ImageCheck(photopath) == false) return;
            dgvData.CurrentRow.Cells["ColFileName"].Value = photopath;
            dgvData.CurrentRow.Cells["ColImage"].Value = Image.FromFile(photopath);
        }

        private void dgvData_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            // 判斷是不是 DataGridViewButtonColumn 欄位
            if (e.ColumnIndex == dgvData.Columns["colUpload"].Index) setImage();
        }
    }
}
[C#] DataGridView 中顯示圖片

Friday, October 24, 2014

[Azure] SSMS 連線 SQL Database

第一次接觸 Azure,看著大神的教學 - 用 SQL Server Management Studio 連線 Windows Azure 上的 SQL Database ,想說用 SSMS 來連接 SQL Database 並不是甚麼困難的事情,沒想到還是花費不少時間才成功 ~~ >.<

Azure => SQL 資料庫 => SQL2014(事先建好的 SQL Database)

[Azure] SSMS 連線 SQL Database-1

SQL2014 => 儀表板

[Azure] SSMS 連線 SQL Database-2

儀錶板頁面又下角可以看見該 Database 相關資料,SSMS 要利用下圖中的 "伺服器名稱" 來連接 SQL2014,"管理 URL" 是另外一段故事,後面紀錄,>.<

[Azure] SSMS 連線 SQL Database-3

第一次使用 Azure 情況下,要先設定允許的 IP 位置,下圖畫面在儀表板內右下角可以找到

[Azure] SSMS 連線 SQL Database-4

畫面上會顯示 Client 端 IP 位置,只要按下加入即可

[Azure] SSMS 連線 SQL Database-5

輸入伺服器名稱、選擇 SQL Server 驗證並輸入建立 SQL Database 時的登入帳號和密碼

[Azure] SSMS 連線 SQL Database-6

在 SSMS 中登錄 SQL Database 成功,可以看見 instance 圖示右下角會有一個淺藍色圖示

[Azure] SSMS 連線 SQL Database-7

 登錄過程中發生的小狀況
  • 大神影片中是抓取 "管理 URL" (可以從伺服器資料那張圖中看見)資料,然後把它 copy 到 SSMS 中並刪除後面的 SQL Database 名稱,我沒有注意到不需要 https 字樣,一直用 https:ServaerName.database.windows.net 去連接,一直都失敗,嘗試過 Azure 提供的連接字串用 SSMS 或寫 C# 進行連接都 OK,後來才從連接字串中發現到只要輸入 ServerName.database.windows.net 就好 ~~ 暈 ~~
  • 第一次使用 Azure,不知道要設定允許 IP,連接時才發現下列的錯誤訊息 ~~
[Azure] SSMS 連線 SQL Database-8