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月12日 星期一
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
接著開始寫自已的列舉器
在Controller中
參考資料:
http://xingulin.tumblr.com/post/48831985749/ienumerable-ienumerator
在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");
}
不如就記錄一下,最最最基礎的東西
建立一個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
1.先在Azure 取得連接字串
2.1 依據Azure 上提供的連接字串,登入Azure DB SSMS,點擊新建立的資料庫,新增查詢
(以下圖來說新建立的資料庫為WalkCarDB)
2.2 並下Create Table Sql
參考資料:
https://www.youtube.com/watch?v=NnXXEFxH228
2015年9月24日 星期四
{IIS}發行網站遇到的問題(HTTP 錯誤 500.19 權限不足、錯誤碼:0x80070021、網頁伺服器已設為不列出此目錄的內容)
今天嘗試將寫好的MVC網站Publish 到IIS,建立新的網站
過去的工作都有「專人」都設定好,工程師就是傻傻的搬到指定的位置
放錯還要被念之類的,今天獨立架入本機的IIS,但礙於非個人電腦,權限上限制很多
最多就是Localhost讀出網頁囉!
首先在VS上發行網站
一連串就有下列問題,先來看一下怎麼發行網站
先在VS的專案右鍵「發行」就會出現下面的畫面
一開始如果沒有發行過會先新增設定檔。
接著就是要發行去哪,過去都是放到另一個資料夾,在透過資料夾Publish 網站上IIS
所以這裡用「檔案系統」,目標位置就自已找想放的地方
接著到IIS的網址上建一個「應用程式」,實體路徑當然要跟上圖目標位置一樣,就可以了。
HTTP 錯誤 500.19 權限不足:
因為不是自已的電腦,常是很卡,這個原因就是資料夾的權限少了「Users」
加上Users的權限就可以了
錯誤碼:0x80070021:
控制台>程式集>程式和功能>開始或邊關閉Windows功能>IIS>World wide web 服務>應用程式開發功能>ASP.NET(打勾)
網頁伺服器已設為不列出此目錄的內容:
將下圖的功能啟用
參考資料
http://silanors.blogspot.tw/2011/04/iisiis7.html
http://blog.xuite.net/s900aaaa/Program/42544521-IIS7%E5%9F%B7%E8%A1%8C%E6%99%82,%E7%94%A2%E7%94%9F%E9%8C%AF%E8%AA%A4%E7%A2%BC%3A+0x80070021+
https://support.microsoft.com/zh-tw/kb/942062
過去的工作都有「專人」都設定好,工程師就是傻傻的搬到指定的位置
放錯還要被念之類的,今天獨立架入本機的IIS,但礙於非個人電腦,權限上限制很多
最多就是Localhost讀出網頁囉!
首先在VS上發行網站
一連串就有下列問題,先來看一下怎麼發行網站
先在VS的專案右鍵「發行」就會出現下面的畫面
一開始如果沒有發行過會先新增設定檔。
所以這裡用「檔案系統」,目標位置就自已找想放的地方
HTTP 錯誤 500.19 權限不足:
因為不是自已的電腦,常是很卡,這個原因就是資料夾的權限少了「Users」
加上Users的權限就可以了
錯誤碼:0x80070021:
控制台>程式集>程式和功能>開始或邊關閉Windows功能>IIS>World wide web 服務>應用程式開發功能>ASP.NET(打勾)
網頁伺服器已設為不列出此目錄的內容:
將下圖的功能啟用
參考資料
http://silanors.blogspot.tw/2011/04/iisiis7.html
http://blog.xuite.net/s900aaaa/Program/42544521-IIS7%E5%9F%B7%E8%A1%8C%E6%99%82,%E7%94%A2%E7%94%9F%E9%8C%AF%E8%AA%A4%E7%A2%BC%3A+0x80070021+
https://support.microsoft.com/zh-tw/kb/942062
2015年9月22日 星期二
{SSIS} OLE DB 來源匯入Excel
Build SSIS時,出現下列的問題:(問題只找關鍵字)
64位元版本的SSIS不支援Excel連接管理員
一查預設專案的運行來源跑64位元的Runtime,但Microsoft OLE DB Provider for Jet 64 位元版本沒有for Excel的版本 ,所以解決方式就是讓他運行來源跑32位元Runtime
而設定就在專案右鍵「屬性」
「偵錯」Tag下的偵錯選項:Run64bitRuntime 選擇False
資料來源:
https://support.microsoft.com/zh-tw/kb/2323097
http://www.dotblogs.com.tw/jamesbi/archive/2010/02/11/13651.aspx
64位元版本的SSIS不支援Excel連接管理員
一查預設專案的運行來源跑64位元的Runtime,但Microsoft OLE DB Provider for Jet 64 位元版本沒有for Excel的版本 ,所以解決方式就是讓他運行來源跑32位元Runtime
而設定就在專案右鍵「屬性」
「偵錯」Tag下的偵錯選項:Run64bitRuntime 選擇False
資料來源:
https://support.microsoft.com/zh-tw/kb/2323097
http://www.dotblogs.com.tw/jamesbi/archive/2010/02/11/13651.aspx
2015年9月10日 星期四
{SQL}SSMS 管理工具 intellisense 失效
SQL Server 2008 R2 SSMS 管理工具 intellisense 因VS 2010 SP1 安裝、升級而失效問題
主要是因為VS 2010 SP1對SSMS 管理工具intellisense 相容性的問題
直接解決的方式是升級 SQL Server 2008 R2
參考資料:
http://sharedderrick.blogspot.tw/2011/04/vs-2010-sp1-ssms-intellisense.html
主要是因為VS 2010 SP1對SSMS 管理工具intellisense 相容性的問題
直接解決的方式是升級 SQL Server 2008 R2
參考資料:
http://sharedderrick.blogspot.tw/2011/04/vs-2010-sp1-ssms-intellisense.html
2015年1月8日 星期四
{SQL} 取相同年月數量總合
SELECT
CAST(MONTH(DocumentDate) AS VARCHAR(2)) + '-' + CAST(YEAR(DocumentDate) AS VARCHAR(4)) AS DocumentDate,
SUM(QTY) AS qty
FROM [FAToolService].[dbo].[ConsolidatedGPRawDataDetail]
GROUP BY CAST(MONTH(DocumentDate) AS VARCHAR(2)) + '-' + CAST(YEAR(DocumentDate) AS VARCHAR(4))
DocumentDate 是年-月-日 的Datetime 格式。
取每個月的數量總合....
CAST(MONTH(DocumentDate) AS VARCHAR(2)) + '-' + CAST(YEAR(DocumentDate) AS VARCHAR(4)) AS DocumentDate,
SUM(QTY) AS qty
FROM [FAToolService].[dbo].[ConsolidatedGPRawDataDetail]
GROUP BY CAST(MONTH(DocumentDate) AS VARCHAR(2)) + '-' + CAST(YEAR(DocumentDate) AS VARCHAR(4))
DocumentDate 是年-月-日 的Datetime 格式。
取每個月的數量總合....
訂閱:
文章 (Atom)