TOP

[ASP.NET MVC] Console Application Entity Framework Code First

1.建立Console Application

2.在Program.cs 加入System.Data.Entity的References
(1)
(2)勾選System.Data.Entity及System.Data.Entity.Design點擊OK
3.加入Entity Framework
方法1:
(1)選擇Solution Explorer 點擊右鍵Manage NuGet Packages
(2)選擇Online→nuget.org

(3)選擇Entity Framework→Install
(4)選擇 I Accept
(5)References將新增EntityFramework及EnityFramework.SqlServer
方法二:
開啟Package Manager Console(程式庫封裝管理員)安裝Entity Framework。
Package Manager Console開啟路徑位置:
安裝Entity Framework
PM> Install-Package EntityFramework

4.建立模型(Model)

在 Program.cs 中的 Program 類別定義下,加入下列兩個類別。

public class Blog 
{ 
    public int BlogId { get; set; } 
    public string Name { get; set; } 
 
    public virtual List<Post> Posts { get; set; } 
} 
 
public class Post 
{ 
    public int PostId { get; set; } 
    public string Title { get; set; } 
    public string Content { get; set; } 
 
    public int BlogId { get; set; } 
    public virtual Blog Blog { get; set; } 
}

兩個導覽屬性 (Blog.Posts 和 Post.Blog) 虛擬化。這會啟用 Entity Framework 的「消極式載入」功能。「消極式載入」表示當您嘗試存取屬性的內容時,這些內容會自動從資料庫載入。

5.建立內容(DbContext )
public class BloggingContext : DbContext 
{ 
    public DbSet<Blog> Blogs { get; set; } 
    public DbSet<Post> Posts { get; set; } 
}

6.讀取及寫入資料
class Program 
{ 
    static void Main(string[] args) 
    { 
        using (var db = new BloggingContext()) 
        { 
            // Create and save a new Blog 
            Console.Write("Enter a name for a new Blog: "); 
            var name = Console.ReadLine(); 
 
            var blog = new Blog { Name = name }; 
            db.Blogs.Add(blog); 
            db.SaveChanges(); 
 
            // Display all Blogs from the database 
            var query = from b in db.Blogs 
                        orderby b.Name 
                        select b; 
 
            Console.WriteLine("All blogs in the database:"); 
            foreach (var item in query) 
            { 
                Console.WriteLine(item.Name); 
            } 
 
            Console.WriteLine("Press any key to exit..."); 
            Console.ReadKey(); 
        } 
    } 
}

7.測試應用程式


資料參考 :https://msdn.microsoft.com/zh-tw/data/jj193542



TOP

[ASP.NET MVC] Visual Studio 2013 Create New WebApplication inclue MVC,Web Forms and Web API.

1.Create WebApplication

2.勾選MVC,Web Forms and Web API,點選OK完成建立。

3.完成建立後的內容。


TOP

[Javascript & jQuery] 滑動廣告2

參考資料:http://www.flycan.com/article/css/javascript-jquery-slider-1334.html
依照參考資料的jQuery練習了兩種不同功能顯示方式。

方法一:依頁數隱藏左右滑動箭頭。
<head>
<script language="javascript">
      (function($) {
            $(function(){
                var gNum=0;//組數的初始值
                var dX=0;//水平座標位置
                var OuterBoxWidth=$(".slider").width();//外層寬度
                var TotalPage=Math.floor(($(".slider ul").width()-1)/OuterBoxWidth);//總組數
             
                $(".status li").eq(gNum).addClass("now");  
             
                $(".prev").hide();
             
                if(TotalPage==0){
                    $(".next").hide();
                }
             
                $(".next").click(function(){
               if(gNum<TotalPage){
               gNum++;
               dX = gNum*OuterBoxWidth*-1;

               $(".prev").show();
                             
               if(gNum==TotalPage){
                            $(".next").hide();
               }
               else
               {
                   $(".next").show();
               }  
               }
             
               SS();
                });
           
                $(".prev").click(function(){
                     if(gNum>0){
               gNum--;
               dX = gNum*OuterBoxWidth*-1;
             
               $(".next").show();

               if(gNum==0){
                         $(".prev").hide();
                        }
               }
               else
               {
                   $(".next").show();
               }
               SS();
                });
           
                function SS(){
               $(".slider ul").stop().animate({left:dX}, 700);
               $(".status li").removeClass().eq(gNum).addClass("now");
                }
           
                $(".status li").click(function(){
               gNum=$(this).index();
               dX = gNum*OuterBoxWidth*-1;
               SS();
                });
            });
        })(jQuery);  
</script>
</head>

方法二:首頁點選左箭頭滑動至頁尾,頁尾點選右箭頭滑動至首頁。
<head>
<script language="javascript">
      (function($) {
            $(function(){
                var gNum=0;//組數的初始值
                var dX=0;//水平座標位置
                var OuterBoxWidth=$(".slider").width();//外層寬度
                var TotalPage=Math.floor(($(".slider ul").width()-1)/OuterBoxWidth);//總組數
             
                $(".status li").eq(gNum).addClass("now");  
                             
                $(".next").click(function(){
               if(gNum<TotalPage){
               gNum++;
               dX = gNum*OuterBoxWidth*-1;
               }else{
                gNum=0;
                dX = 0;
                }
             
               SS();
                });
           
                $(".prev").click(function(){
                     if(gNum>0){
               gNum--;
               dX = gNum*OuterBoxWidth*-1;
             
               $(".next").show();
               }
               else
               {                  
                    if (TotalPage>= 1)
                    {
                        dX = TotalPage*OuterBoxWidth*-1;
                        gNum = TotalPage
                    }
               }
               SS();
                });
           
                function SS(){
               $(".slider ul").stop().animate({left:dX}, 700);
               $(".status li").removeClass().eq(gNum).addClass("now");
                }
           
                $(".status li").click(function(){
               gNum=$(this).index();
               dX = gNum*OuterBoxWidth*-1;
               SS();
                });
            });
        })(jQuery);  
</script>
</head>

CSS部份:
    <style type="text/css">
            .list{ list-style:none; margin:0; padding:0;}
            .sliderBox{ background-color :#ede9e8; width:960px;  overflow:hidden; position:relative;padding-bottom:7px; }
            .slider{ width:888px; height:50px; overflow:hidden; margin:auto; position:relative;}
            .slider ul{ overflow:hidden;  position:absolute; left:0;list-style-type:none;}
            .slider li{ float:left;text-align:center;list-style-type:none;}
            .status{ text-align:center; margin-top:0px; position:relative\9; *margin-left:435px;}
            .status li{ cursor:pointer; background:#FFF; display:inline-block; text-indent:-9999px; border:2px solid #CCC; width:8px; height:8px; border-radius:100%; margin:0 5px; *float:left; }
            .status li.now{ background:#09C; border-color:#999;}
            .dIcon{ text-indent:-9999px; position:absolute; top:15px; display:block; width:10px; height:10px; background:url(../slider.png) no-repeat; width:22px; height:30px;}
            .next{ right:5px; background-position:-22px -2px;}
            .prev{ left:5px; background-position:0 -2px;}
            .next:hover{ background-position:-22px -32px;}
            .prev:hover{ background-position:0 -32px;}
    </style>

HTML的部份:

                <div class="sliderBox">
                  <div class="slider">
                    <ul id="ulSlider" class="list" runat="server">
                                <li>
                                    <table border="0" bgcolor="#ede9e8" width="296">
                                        <tr>
                                            <td width="50" rowspan="2" align="left" style= "word-break:break-all;">
                                                    <asp:Image ID="img" runat="server" ImageUrl=''/>
                                            </td>
                                            <td width="246" align="left" valign="bottom">
                                                <div style="width: 236px;text-overflow:ellipsis; white-space:nowrap;overflow:hidden">
                                                    <asp:LinkButton ID="btname" style="text-decoration:none"                ForeColor="Black" runat="server" Text='name'></asp:LinkButton>
                                                </div>
                                            </td>      
                                        </tr>
                                        <tr>
                                            <td width="246" align="left" valign="top" style= "word-break:break-all;">
                                                <asp:LinkButton ID="btDesc" style="text-decoration:none;" ForeColor="Black" runat="server" Text='Desc'></asp:LinkButton>
                                            </td>
                                        </tr>
                                    </table>                                          
                    </ul>
                  </div>
                  <a href="javascript:;" class="dIcon next">Next</a>
                  <a href="javascript:;" class="dIcon prev">Prev</a>
                </div>
TOP

[ASP.NET] Dynamic add control

1.Dynamic add control LinkButton

'Generate Name Link Button
Dim btnName As New LinkButton AddHandler btnName.Click, AddressOf btnDownload_Click
btnName.ID = "123"
btnName.CommandName = "name"
btnName.Attributes.Add("runat", "server")
btnName.Style.Add("text-decoration", "none")

2.Dynamic add control  table and insert Link Button to TD

'Generate  table
Dim table As New Table()
Dim tRow As New TableRow()
Dim tCell As New TableCell()

'Insert link button to table
tCell.Controls.Add(btnName)
tRow.Cells.Add(tCell)
table.Rows.Add(tRow)

3.Dynamic add control  DIV and insert Table to DIV
'Generate div
    Dim div As New HtmlGenericControl("div")

'Insert table to Div
    div.Controls.Add(table)

參考資料:
http://www.allenkuo.com/EBook5/view.aspx?TreeNodeID=31&id=58
http://www.blueshop.com.tw/board/show.asp?subcde=BRD20071105235713OLJ&fumcde=
www.blueshop.com.tw/board/FUM20041006161839LRJ/BRD20060910192120K3P.html
http://www.blueshop.com.tw/board/FUM20041006161839LRJ/BRD20120828093044OHM.html
http://www.aspsnippets.com/Articles/ASPNet-Persist-Dynamic-Controls-Dynamic-Controls-disappear-after-PostBack-in-ASPNet.aspx
http://jayhsunote.blogspot.tw/2011/06/aspnet-controlusercontrolpostback.html
http://w3937.pixnet.net/blog/post/75882652-%5Bc%23%5Dasp.net-%E5%8B%95%E6%85%8B%E7%94%A2%E7%94%9F%E6%8E%A7%E5%88%B6%E9%A0%85%E7%AD%86%E8%A8%98
http://www.dotblogs.com.tw/jeff377/archive/2008/03/17/1727.aspx
http://zongnansieprogram.blogspot.tw/2013/09/c-vb-pageload-pageinit.html?spref=fb
http://www.aspsnippets.com/Articles/ASPNet-Dynamic-Controls-ViewState-Retain-state-for-dynamically-created-controls-on-PostBack.aspx
TOP

[Javascript & jQuery] 滑動廣告

<html>
<head>
 <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
    <style type="text/css">
       .left {
          float:left;
       }
    </style>

<script language="javascript">
  $(document).ready(function(){
  alert($(document).width());
var docw = $(document).width() - 599;
$("#SliderRight").click(function(){
$("#main").animate({
scrollLeft: $("#main").scrollLeft() + docw
}, 700,function(){});
});
$("#SliderLeft").click(function(){
$("#main").animate({
scrollLeft: $("#main").scrollLeft() - docw
}, 700,function(){});
});

  });
</script>
</head>

<body>
<input type="button" id="left" value="左" />
<input type="button" id="right" value="右" />
<div id="main" style="margin: 50px auto; overflow: hidden; width: 100%; height: 600px;">
<div style="width: 4200px;">
<div class="left">1<br /><img src="1.jpg" alt="" width="300px" /></div>
<div class="left">2<br /><img src="2.jpg" alt="" width="300px" /></div>
<div class="left">3<br /><img src="3.jpg" alt="" width="300px" /></div>
<div class="left">4<br /><img src="4.jpg" alt="" width="300px" /></div>
<div class="left">5<br /><img src="5.jpg" alt="" width="300px" /></div>
</div>
</div>
</body>
</html>

參考資料:
http://sweeteason.pixnet.net/blog/post/37793032-%E7%B7%B4%E7%BF%92%E7%94%A8jquery-%E8%AE%93%E9%A0%81%E9%9D%A2%E5%B7%A6%E5%8F%B3%E6%BB%91%E5%8B%95

TOP

[ASP.NET] Chart Control

新增Chart Control

Visual Studio 2008 web.config加入MSChart的元件 (.Net Framework 3.5)

<configuration>
  <appSettings>
    <add key="ChartImageHandler" value="storage=file;timeout=20;url=~\images\chartTemporary\;" />
  </appSettings>

  <system.webServer>
    <handlers>
      <remove name="ChartImageHandler" />
      <add name="ChartImageHandler" preCondition="integratedMode" verb="POST,GET,HEAD" path="ChartImg.axd" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
    </handlers>
  </system.webServer>

  <system.web>
    <httpHandlers>
       <add path="ChartImg.axd" verb="GET,HEAD,POST" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false"/>
    </httpHandlers>
  </system.web>

  <pages validateRequest="false" enableEventValidation="false" enableViewStateMac="true">
    <controls>
      <add tagPrefix="asp" namespace="System.Web.UI.DataVisualization.Charting" assembly="System.Web.DataVisualization, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
    </controls>
  </pages>

  <compilation debug="true">
    <assemblies>
       <add assembly="System.Web.DataVisualization, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    </assemblies>
  </compilation>
</configuration>

參考來源:http://www.dotblogs.com.tw/shunnien/archive/2013/04/15/101651.aspx

前台

<asp:Chart ID="Chart1" runat="server" ImageStorageMode="UseImageLocation" Visible="false" Width="720px" ImageLocation="~/images/chartTemporary/ChartPic_#SEQ(300,3)">
       <Series>
            <asp:Series Name="Series1">
            </asp:Series>
        </Series>
        <ChartAreas>
            <asp:ChartArea Name="ChartArea1">
            </asp:ChartArea>
        </ChartAreas>
</asp:Chart>

ImageLocation :暫存圖檔位置及檔案名稱設定。
ChartPic_#SEQ(300,3)的規則為300張圖片為一個循環。

參考來源:
http://www.4guysfromrolla.com/articles/081909-1.aspx
http://www.dotblogs.com.tw/shadow/archive/2011/03/10/21762.aspx

後台


Private Sub CreateChart(ByVal dt As DataTable)
        '資料來源為DataTable(欄位名稱MyDateTime及Count)
        ' xValues:MyDateTime , yValues:Count
        For Each row As DataRow In dt.Rows
            Dim intPointidx As Integer
            '新增該筆資料的XY值,並取得該值的idx
            intPointidx = Chart1.Series("Series1").Points.AddXY(row("DateTime").ToString(), row("Count"))
            '利用idx顯示該值的ToolTip
            Chart1.Series("Series1").Points(intPointidx).ToolTip = row("MyDateTime") & "\n" & row("Count")
            '設定Marker
            Chart1.Series("Series1").Points(intPointidx).MarkerColor = Color.FromArgb(62, 151, 201)
            Chart1.Series("Series1").Points(intPointidx).MarkerStyle = MarkerStyle.Circle
            Chart1.Series("Series1").Points(intPointidx).MarkerSize = 10
        Next
     
         '增加圖示
        Chart1.Legends.Add("Legends1")
        Chart1.Legends("Legends1").BackHatchStyle = DataVisualization.Charting.ChartHatchStyle.DarkDownwardDiagonal
        Chart1.Legends("Legends1").BorderWidth = 1
        Chart1.Legends("Legends1").BorderColor = Color.FromArgb(200, 200, 200)
        Chart1.Legends("Legends1").Docking = Docking.Top
     
        '設定X軸及Y軸
        Chart1.ChartAreas("ChartArea1").AxisY.ScaleBreakStyle.CollapsibleSpaceThreshold = 20
        Chart1.ChartAreas("ChartArea1").AxisY.ScaleBreakStyle.LineColor = Color.Red
        Chart1.ChartAreas("ChartArea1").AxisY.LabelStyle.Font = New System.Drawing.Font("Arial", 9, System.Drawing.FontStyle.Regular)
        Chart1.ChartAreas("ChartArea1").BackGradientStyle = DataVisualization.Charting.GradientStyle.VerticalCenter
        Chart1.ChartAreas("ChartArea1").Area3DStyle.Enable3D = False
        Chart1.ChartAreas("ChartArea1").AxisX.LabelStyle.Font = New System.Drawing.Font("Arial", 9, System.Drawing.FontStyle.Regular)
        Chart1.ChartAreas("ChartArea1").AxisX.Enabled = DataVisualization.Charting.AxisEnabled.True
        Chart1.ChartAreas("ChartArea1").AxisY.Minimum = 0
        Chart1.ChartAreas("ChartArea1").AxisX.MajorGrid.Enabled = False
        Chart1.ChartAreas("ChartArea1").AxisY.MajorGrid.Enabled = True
        Chart1.ChartAreas("ChartArea1").AxisY.MajorGrid.LineColor = Color.FromArgb(150, 150, 150)
        Chart1.ChartAreas("ChartArea1").AxisX.MajorGrid.LineColor = Color.FromArgb(150, 150, 150)
        Chart1.ChartAreas("ChartArea1").AxisX.IntervalAutoMode = DataVisualization.Charting.IntervalAutoMode.VariableCount
        Chart1.ChartAreas("ChartArea1").AxisX.IsLabelAutoFit = True
        Chart1.ChartAreas("ChartArea1").AxisX.LabelStyle.IsStaggered = True
        '把圖表的左右兩邊空白去除
        Chart1.ChartAreas("ChartArea1").AxisX.IsMarginVisible = False
        '設定X軸間距
        Chart1.ChartAreas("ChartArea1").AxisX.Interval = 1
        '設定Y軸間距
         Chart1.ChartAreas("ChartArea1").AxisY.Interval = 1
        Chart1.Series("Series1").IsValueShownAsLabel = False
        Chart1.Series("Series1").LegendText = "DateTime"
        Chart1.Series("Series1").Font = New System.Drawing.Font("Arial", 9, System.Drawing.FontStyle.Regular)
        Chart1.Series("Series1").ChartType = SeriesChartType.Line
        Chart1.Series("Series1").BorderWidth = 3
        Chart1.Series("Series1").BorderColor = Color.FromArgb(62, 151, 201)
    End Sub


參考資料:
1.http://www.dotblogs.com.tw/suehilary/archive/2011/10/22/45430.aspx
2.http://www.dotblogs.com.tw/shunnien/archive/2013/04/22/102049.aspx
3.http://www.dotblogs.com.tw/mrkt/archive/2008/11/28/6116.aspx
4.http://blog.xuite.net/fenctang/twblog/137597590-asp.net+c%23+MSChart+
http://nickmason.lionfree.net/blog/117/%E5%A5%BD%E7%94%A8%E7%9A%84%E5%9C%96%E8%A1%A8%E5%B7%A5%E5%85%B7-microsoft-chart-control/
5.http://fecbob.pixnet.net/blog/post/38851855-asp.net%E8%B3%87%E6%96%99%E6%8E%A7%E5%88%B6%E9%A0%85%E4%B9%8Bchart%E7%9A%84%E7%94%A8%E6%B3%95
6.http://xpower2888.pixnet.net/blog/post/149675162-ms-chart-%E6%95%B0%E6%8D%AE%E7%BB%91%E5%AE%9A%E6%96%B9%E6%B3%95
7.http://www.dotblogs.com.tw/nobel12/archive/2009/10/22/11206.aspx
8.http://www.blueshop.com.tw/board/FUM20041006161839LRJ/BRD20110304093353IHH.html

TOP

[C#]動態建立控制項


重點:一定要寫在Page_Init

        protected void Page_Init(object sender, EventArgs e)
        {
            //動態新增
            DataTable dt = new DataTable();
            dt.Load(GetZipCity());

            if (dt.Rows.Count > 0)
            {
                LinkButton[] btnZipCity = new LinkButton[dt.Rows.Count];

                for (int i = 0; i < btnZipCity.Length; i++)
                {
                    btnZipCity[i] = new LinkButton();
                    btnZipCity[i].ID = "btnZipCity" + i.ToString();
                    btnZipCity[i].Text = dt.Rows[i]["CityName"].ToString();
                    btnZipCity[i].CommandName = dt.Rows[i]["CityID"].ToString();
                    btnZipCity[i].Click += new System.EventHandler(btnZipCity_Click);
                    btnZipCity[i].Command += new CommandEventHandler(btnZipCity_Click);
                    this.PlaceHolder.Controls.Add(btnZipCity[i]);

                    Label olab = new Label();
                    olab.Text = " | ";
                    PlaceHolder.Controls.Add(olab);
                }
            }
          }

        // ZipCity Button 的 Click 事件導向函數
        protected void btnZipCity_Click(object sender, EventArgs e)
        {
            LinkButton ZipCity = (LinkButton)sender;
            QueryZipCity = ZipCity.CommandName;
        }

參考資料:http://careychen.pixnet.net/blog/post/22622126-%5Basp.net%5D-%E5%9C%A8-web-form-%E5%8B%95%E6%85%8B%E5%BB%BA%E7%AB%8B%E6%8E%A7%E5%88%B6%E9%A0%85%E7%9A%84%E6%AD%A3%E7%A2%BA%E6%96%B9%E6%B3%95