2015年10月12日 星期一

{SQL}tempdb 的temp table 釋放

Tempdb:建立temp table ,讓資料暫時放置在寫到實體的Table

確認TEMP TABLE 是否在用完後有釋放掉:
IF Object_id('tempdb..TEMPTABLENAME') IS NOT NULL

BEGIN

      DROP TABLE #temp

END

參考資料
http://www.dotblogs.com.tw/justforgood/archive/2014/02/20/144091.aspx

2015年10月5日 星期一

{C#}實作IEnumerable 介面 讀出列舉陣列

下列示範在MVC架構中,實作IEnumerable介面
在Yahoo 字典中,Enumerable的意思是「可列舉的」adj.
主要就是把一個集合中的資料一 一讀出的運作流程

1.首先建立一個Class 並繼承Franmework的IEnumerable介面
在IEnumerable介面上只有一個Function
這可以從MSDN上可以看到
https://msdn.microsoft.com/zh-tw/library/system.collections.ienumerable(v=vs.110).aspx
接著開始寫自已的列舉器

//1.繼承IEnumerable
//資料結構中的資料,是否可被列舉
public class IEnumeratorClass:IEnumerable {
private string[] EmployeeList = { "John", "Jay", "Bobo" };
//IEnumerable界面下的function
public IEnumerator GetEnumerator()
{ return new EmployeeEnumerator(this); }
//2.自定義「資料結構實作的列舉器」
public class EmployeeEnumerator : IEnumerator
{ //元素
string[] _elements;
//指標
int _flag = -1;
//建構子
public EmployeeEnumerator(IEnumeratorClass source) { _elements = source.EmployeeList; }
//實作Reset Void 重新設定Flag
public void Reset() { this._flag = -1; }
//實作Current 回傳當前的值
public object Current { get { if (this._flag == -1 || this._flag > this._elements.Length) { //Exception throw new InvalidOperationException(); } return this._elements[this._flag]; } }
//指標移至下一筆是否可行
public bool MoveNext() { if (this._flag + 1 == this._elements.Length) return false; else { this._flag++; return true; } }
//取資料結束後,要做任何Release、關閉資料庫連結等覆寫
public void Dispose() { } } }



在Controller中

public ContentResult EmployeeGet() { string allEmployee = ""; IEnumeratorClass employeeName = new IEnumeratorClass(); IEnumerator enumerator = employeeName.GetEnumerator(); //當可以移至下一筆時 while (enumerator.MoveNext()) { //Show出所有的集合資料 allEmployee += enumerator.Current; } return Content(allEmployee); }
參考資料:
http://xingulin.tumblr.com/post/48831985749/ienumerable-ienumerator

2015年10月2日 星期五

{MVC} Linq to sql 搭配MVC 基本運作

離開程式三個多月,重拾卻步步難走
不如就記錄一下,最最最基礎的東西
建立一個MVC專案
最簡單就是建一個Textbox 與一個Button
以db first的方式寫入資料庫
這是一個最簡單的例子

Views:
//整頁做Postback
@using (Html.BeginForm("Test", "Home", FormMethod.Post))
{
//建立一個address 的textbox
@Html.TextBox("address")
//建立一個按鈕
    <input type="submit" name="btnSubmit" value="Convert" />
}

按鈕Type為submit ,一點下就會Postback 到指定的Action


Control:
傳入為Textbox 的內容,放上Textbox 的name屬性
Linq to Sql 建立一個db連線,接著就可以將資料寫入db

 [HttpPost]
        public ContentResult Test(string address)
        {
            try {
           
                MyProject_GoogleMapLocation newItem = new MyProject_GoogleMapLocation();
                newItem.ADDRESSCHT = address;
                //Save Database
                using (var context = new HomeDataContext())
                {
                    context.MyProject_GoogleMapLocation.InsertOnSubmit(newItem);
                    context.SubmitChanges();
                }
            }
            catch(Exception e)
            {
                return Content( e.Message);
            }
           
            return Content("Successful");
        }

2015年10月1日 星期四

{工具} Azure Create Table (Sql Server-SSMS)

在SSMS 建立新的Table 方法:
1.先在Azure 取得連接字串


2.開啟SSMS
 2.1 依據Azure 上提供的連接字串,登入Azure DB SSMS,點擊新建立的資料庫,新增查詢
(以下圖來說新建立的資料庫為WalkCarDB)
2.2 並下Create Table Sql



參考資料:
https://www.youtube.com/watch?v=NnXXEFxH228



{工具} Visual Studio 發行網站至Windows Azure

1.先去Windows Azure 下載發行檔


2.在專案下的架構是這樣

3.在專案按右鍵選取「發行」


4.發行檔匯入

5.發行檔自動就會帶出下列訊息(含服務URL)