C50108
  • 2019/0801/轉職成功路途開始
  • 自學心得與此網站使用方式
  • 行事曆&課程大綱
  • 2019/0224/自我檢視
  • 雜記
    • 2019/0103/雜記
    • 2019/0410/作品集建構
    • 2019/0429/職訓局書單
    • 2019/0317/自我檢視
    • 2019/0316/陪玄松去高車討論&環境圖流程圖大神們line討論
    • 2019/0305/Gitbook使用方法
  • 2018/10XX/轉職心路歷程
  • 職訓局里程碑
    • 201901
      • 2019/0103/行動商務系統設計與開發,職訓局報到
      • 2019/0104/正式開課日&行動商務課程簡介
      • 2019/0108/資料庫理論/Access&WEB開發簡介
      • 2019/0109/資料庫資料型態屬性&HTMLtag
      • 2019/0110/計概基礎概念
      • 2019/0111/HTML表格table&form表單_post/get&iframe
      • 2019/0114/計&網概概念&網路層概念
      • 2019/0115/資料庫Access運算值&CSS簡介&在職班補充
      • 2019/0116/Access比較/邏輯運算&CSS_在職班補充+選擇器+Box model
      • 2019/0117/資訊系統架構&網路層
      • 2019/0118/資料庫正規化
      • 2019/0121/計概IT分工&資料庫正規化
      • 2019/0122/網路層&CSS父子容器切版
      • 2019/0123/Access資料庫關聯&CSS position&偵錯
      • 2019/0124/C#宣告、指定運算子
      • 2019/0125/VM虛擬機_基礎介紹
      • 2019/0128/VM虛擬機架設_虛擬網卡設定&伺服器權限設置
      • 2019/0129/Wireshark查詢網路層&資料庫物件導向
      • 2019/0130/ERmod雞爪圖&C#if、for時間複雜度
      • 2019/0131/C#流程控制&變數型別
    • 201902
      • 2019/0201/系統分析與設計_資料庫ERmod&c#Homework
      • 2019/0211/ASP.NET_Webforms&物件命名空間
      • 2019/0212/定址&網路遮罩
      • 2019/0213/SQLSeverM.S.介紹&AspWebforms表單控制項
      • 2019/0214/網概乙太網路&網路安全
      • 2019/0215/Pre Javascript 基礎 & 在職班補充
      • 2019/0218/TSQL基本指令&ASP.net左右置換表格/驗證傳值
      • 2019/0219/Javascript終極密碼&musicplay&asp.net驗證器
      • 2019/0220/SS基本語法&網概line機器人
      • 2019/0221/前端Javascript musicplay、內聚力耦合率
      • 2019/0222/前端Javascript musicplay、內聚力耦合率&伺服器權限
      • 2019/0223/SqlServerHomework&第一次專案報告
      • 2019/0225/SS合併查詢&ASP.NET驗證器
      • 2019/0226/伺服器ntfs安全性權限/共用權限
      • 2019/0227/Javascript_music_play_end&ASP.net串聯SQL(datasource就是拿來串SQLServer的)
    • 201903
      • 2019/0304/SS集合運算/子查詢/exists&asp.net GridView 事件 OnRowDataBound
      • 2019/0305/SS查詢式end&ASP.NET_Gridview_自訂樣式分頁
      • 2019/0306/Javascript musicplay_really_end
      • 2019/0307/前端HTML5鑲嵌字型&伺服器網域概念
      • 2019/0308/Android Studio_基礎概念&開發環境建置
      • 2019/0311/胡中興 工業4.0講習
      • 2019/0312/安卓系統_開發基礎介紹
      • 2019/0313/安卓工作室_基礎/布局內元件
      • 2019/0314/Asp.net鏈結資料庫-查詢
      • 2019/0315/SQS DML&第二次專案報告
      • 2019/0318/SQL DDL & 伺服器 自學基礎
      • 2019/0319/Android Studio_布局內元件&佈局規劃元件
      • 2019/0320/SQL檢視表&tsql基礎&Asp.net_Gridview
      • 2019/0321/TSQL&TDM&ASP.NET_Datalist
      • 2019/0322/DOM&JQ基礎&系統分析設計PPT&在職班補充
      • 2019/0325/TMD&Asp.net上傳圖片/產生QRCode
      • 2019/0326/SQLServer_預存程序+函數&Asp.net_Webforms半自動鏈結資料庫與自動化更新
      • 2019/0327/安卓工作室_佈局規劃元件
      • 2019/0328/jQuery選擇器應用&Ajax導讀+應用&asp.net串sserver_註冊帳號功能
      • 2019/0329/ADDS伺服器架設&第三次專題報告
    • 201904
      • 2019/0401/SQL觸發程序&Asp.net自動寄信&認證信
      • 2019/0402/前端作業四-jQ應用轉換樣式&ASP.NET_FormView控制項-會員資料維護實例
      • 2019/0403/JQ事件動畫&股市&Usecase
      • 2019/0408/安卓工作室_元件/布局基本end
      • 2019/0409/安卓工作室-物件導向事件驅動實作+Homework1&2
      • 2019/0410/上午小組討論-作品集自習&Visual studio webform+MVC範本
      • 2019/0411/安卓工作室-UI觸發委派函式與控制物件
      • 2019/0412/JQ動畫實做(寶可夢遊戲開場)&第四次專題報告
      • 2019/0415/前端JQ-Ajax+JSON&後端ADO建置、主板頁面概念控制項、Bootstrap演示
      • 2019/0416/安卓工作室UI控件案例結束、IDE Eclipse_Java物件導向基礎
      • 2019/0417/伺服器網域ADDNS&416LINE討論
      • 2019/0418/SQL指標、索引&Use cace
      • 2019/0419/主頁、Webform ADO.NET Entity Fromwork 增刪修實作&第五次專題報告
      • 2019/0423/Java基礎(型別/溢位/自動強制型別轉換/鑄造物件/串流/)&I/O物件用法(底層/較不底層)
      • 2019/0424/Bootstrap_RWD基礎/應用&Asp.Net_MVC實作增刪修(修待補)
      • 2019/0425/伺服器IIS安裝&資料匯入與管理
      • 2019/0426/Asp.Net_MVC增刪修實作(補修)&bootstrap – gridsystem– 網格系統&第六次專題報告&全國技能競賽網頁設計
      • 2019/0429/物件導向技術原理方法實作
      • 2019/0430/資料庫設計應用效能調教_SQL all end&ASP.NET_MVC_Controller單元_純C無V無M操作/簡單複雜繫結
    • 201905
      • 2019/0501/內部網站辨識&外部DNS域名/IP+自架DNS伺服器理解
      • 2019/0502/Java語言基礎、物件導向基礎
      • 2019/0503/Asp.net泛型處理常式驗證圖片應用&第七次專題報告Usecase
      • 2017/0506/Bs_FlexBox&Asp.Net_MVC_View+Razor@+Viewbag+helper
      • 2019/0507/Java 物件導向_類別+函式觀念&階段性作業三
      • 2019/0508/Asp.Net_MVC_Model_ADO.NET+Entityframework+LoginMember實作+MVC觀念
      • 2019/0509/Java物件導向(函式)_儲存型態+回傳值+多載+自制+例外處理+this參照+存取+複合
      • 20919/0510/第八次專題報告=功能DEMO
      • 2019/0514/Java_靜態類別+繼承特性
      • 2019/0515/RWD Utility+Card&MVC ViewModel+CRUD(RD)
      • 2019/0516/BS form&驗證+JQ驗證 & MVC_CRUD(CU)
      • 2019/0517/ASP.NET Webform介紹Master page 主頁 & Session 簡介 & 登入login驗證 & 隱碼攻擊injection & 工具箱程式碼片段使用
      • 2019/0520/繼承&存取權特性+java作業四+字符串格式化+多形+抽象類別
      • 2019/0521/抽象類別+介面
      • 2019/0522/Bootstrap Components 元件介紹 + MVC API 概念&實作
      • 2019/0523/IIS IP限制&ASP.NET部屬
      • 2019/0524/WebApi異質程式連線方式&第九次專題報告_循序圖
      • 2019/0528/Bootstrap Components 元件介紹 + MVC 登入驗證 + 商品加入購物車 實作
      • 2019/0529/ASP.NET_MVC購物車訂單功能完成+BootstrapComponents元件介紹
      • 2019/0530/原本是伺服器的課,但拿來做專題。
      • 2019/0531/ASP.NET_WebformAllView物件功能清單&ListView實作&第十次專案報告(完整循序圖)
    • 201906
      • 2019/0603/Bootstrap Components RWD End + ASP.NET_MVC Part2 PhotoSharing CodeFirst & Model 驗證
      • 2019/0604/ASP.NET_MVC Part2 PhotoSharing Controller & Filter & ADO.NET & View@RAZOR Helper
      • 2019/0605/Java介面實作&結束+安卓工作室(整合Layout與Java)Intent意圖&Bundle包裹
      • 2019/0606/第十一次專案報告功能demo+SingnaIR+伺服器作業+端午歌唱比賽
      • 2019/0609/黃大神傳授Visual_Studio&除錯技巧
      • 2019/0610/番外篇 Web Socket 即時連線& 就業前準備與技巧
      • 2019/0611/安卓工作室_(意圖+隱含意圖)資料傳遞+Android生命週期+硬體裝置與應用
      • 2019/0612/WebSockets Notification + MVC Part2 PhotoSharing PartialView & ADO.NET & EntitySQL & VMd
      • 2019/0613/MVC Part2 PhotoSharing ViewModel & ErrorHandle
      • 2019/0614/第十二次專案報告 功能Demo
      • 2019/0618/MVC Part2 PhotoSharing Route & Sitemap & _LayOut & AJAX
      • 2019/0618/RWD在職班_(Javascript_object-oriented programming)
      • 2019/0619/安卓工作室_(硬體裝置與應用)相機操作&GPS+階段性作業6+延伸 ( APP End )
      • 2019/0620/MVC補充C#MS SQL匯入CSV+上傳CSV存入MS SQL
      • 2019/0621/第十三次專案報告 功能Demo
    • 2019/0701/最終專案報告
    • 2019/0702/結訓與家人遊台東預計0708開始找工作自學筆記應該會等工作穩定後繼續開始
  • 自學里程碑
    • 201901
      • 2019/0107/DR
      • 2019/0108/UW
      • 2019/0103/Git
      • 2019/0103/CS
      • 2019/0115/Vscode
      • 2019/0116/JSON&AJAX
      • 2019/0122/卡內基
      • 2019/0126/MBTI
      • 2019/0131/PDP 外在 內在
    • 201902
      • 2019/0217/huli_half Developer
      • 2019/0219/SEO
      • 2019/0219/雪球速讀法
    • 201903
      • 2019/0304/asp、php、jsp、asp.net、net. Framework、asp.net core
      • 2019/0329/網站架站初嘗試
    • 201904
      • 2019/0415/Datatype-Explanation
      • 2019/0416/ASP.NET_Webform&Core&MVC(MVVM/MVP)
    • 201905
      • 2019/0613/開發職訓局共同專案時遇到的問題與解法
      • 2019/0514/ASP.NET SignalR
      • 2019/0514/JS擴展-JQ、React、Vue、Angular...
      • 2019/0514/Sass&Scss
      • 2019/0514/MVC結合Webform
      • 2019/0515/ASP.NET MVC_TempData/ViewData/ViewBag
      • 2019/0522/[自學筆記]海綿體啟蒙??
Powered by GitBook
On this page
  • MVC 前主頁webform ADO.NET Entity Fromwork增刪修實作
  • 前情提要
  • 實作create
  • 下課後上課 實作 edit delete
  • 透過entityfromwork不用寫sql那要怎要資料呢?
  • 回到正題 ( 現在還都是 webform
  • 早上bug
  • 老師版本的有把程式碼步驟放上去 index2.aspx.cs
  • 第五次專題報告 – ERD所衍生的資料庫與關聯圖
  • 第一組
  • 第四組
  • 第五組
  • 題外話 經濟

Was this helpful?

  1. 職訓局里程碑
  2. 201904

2019/0419/主頁、Webform ADO.NET Entity Fromwork 增刪修實作&第五次專題報告

Previous2019/0418/SQL指標、索引&Use caceNext2019/0423/Java基礎(型別/溢位/自動強制型別轉換/鑄造物件/串流/)&I/O物件用法(底層/較不底層)

Last updated 6 years ago

Was this helpful?

MVC 前主頁webform ADO.NET Entity Fromwork增刪修實作

MVC 現在課還是很貴30小時4萬,

壓縮起來

跟不上直接抓

到時候會是一個個專案

PreMVC

WebForm 轉為

Entity Fromework 操作資料庫

VS伺服器總管可以當作簡易的SQL Server

康內訊?

前情提要

有資料庫後利用 entity framework ado.net建立模型

一個實體 屬性

軟體業 架構不變但3%會快速變動才會覺得跟不上

預響應式做準備Bootstrap 鞋帶 版本很重要

版根 3.4 4.3 第一個字為版本 第二個字是修正

所以3 跟 4是不同版本且在bs裡面3與4不相容

介面美化與響應式功能

首頁Index 不使用了要使用index2因為套了主板Site.Master,

框架頁面概念

接下來補足新刪修

Gridview型態 bootstrap樣式

Creat 使用主板頁面的webform

<%@ Page Title="" Language="C#" MasterPageFile="~/Site1.Master" AutoEventWireup="true" CodeBehind="Create.aspx.cs" Inherits="MVC1.Create" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
</asp:Content>

自動鏈結主板

 <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
            </asp:ContentPlaceHolder>

實作create

畫面做得再漂亮都不一定會操作 UI

只有曾經用過的經驗或是直覺UX才能告訴你怎麼做

寫回資料庫通常

1.datasql

2.ado.net 宣告 contion …

3.MVC方式 ( MVC書裡面有

圖片資料型態複雜 先用 try 看有沒有上傳檔案 才可以上傳

轉型態 邏輯對實體

一般來說在使用者上傳檔案後會把上傳檔案檔名處理才歸檔

圖存進伺服器 檔名存資料庫

操作entitiy fromwork

Using MVC1.Models

DbProductEntities 類別

鑄造db物件

利用entitiy fromwork 寫回去

tProduct 資料表結構寫成類別

如此可直接指定資料進去 ( 但還是要注意轉型 要相對資料型態

decimal 表現範圍比 int 多 比long大

上傳圖片2種方式 1.檔名放資料庫檔案放伺服器分開放 2.檔案值接進資料庫拿出來要用泛型轉回

Entity 建立資料庫物件 在把資料物件傳回model , 在真的寫進資料庫,重新導向index2

Try 沒發生例外時會 catch 發生例外時 回傳 lblerror 錯誤訊息 , 寫過 C#所以要編譯

前端

<%@ Page Title="" Language="C#" MasterPageFile="~/Site1.Master" AutoEventWireup="true" CodeBehind="Create.aspx.cs" Inherits="MVC1.Create" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">

    <h2>產品新增</h2>
    <div class="form-horizontal">
        <hr />
        <div class="form-group">
            <label for="id" class="control-label col-md-2">編號</label>
            <div class="col-md-10">
                <asp:TextBox ID="txtId" runat="server" class="form-control"></asp:TextBox>
            </div>
        </div>

        <div class="form-group">
            <label for="name" class="control-label col-md-2">品名</label>
            <div class="col-md-10">
                <asp:TextBox ID="txtName" runat="server" class="form-control"></asp:TextBox>
            </div>
        </div>

        <div class="form-group">
            <label for="price" class="control-label col-md-2">單價</label>
            <div class="col-md-10">
                <asp:TextBox ID="txtPrice" runat="server" class="form-control" TextMode="Number"></asp:TextBox>
            </div>
        </div>
  <div class="form-group">
            <label for="img" class="control-label col-md-2">圖</label>
            <div class="col-md-10">
                <asp:FileUpload ID="FileUpload1" runat="server" />
            </div>
        </div>

         <div class="form-group">
            <div class="col-md-offset-2 col-md-10">
                <asp:Button ID="btnCreate" runat="server" Text="新增" class="btn btn-primary" OnClick="btnCreate_Click" />
                <asp:Label ID="lblError" runat="server"></asp:Label>
            </div>
        </div>
    </div>
     <div>
        <a href="Index2.aspx">返回產品列表</a>
    </div>
    </asp:Content>

後端

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using MVC1.Models;

namespace MVC1
{
    public partial class Create : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
{

        }


        //按下[儲存]按鈕
        protected void btnCreate_Click(object sender, EventArgs e)
        {
            try
            {
                string fileName = "";
                //圖片上傳儲存
                if (FileUpload1.HasFile)
                {
                    FileUpload1.SaveAs(Server.MapPath("images/" + FileUpload1.FileName));
                    fileName = FileUpload1.FileName;
                }

                //新增資料進資料庫

                dbProductEntities db = new dbProductEntities();

                tProduct product = new tProduct();
                product.fId = txtId.Text;
                product.fName = txtName.Text;
                product.fPrice = Convert.ToDecimal(txtPrice.Text);
                product.fImg = fileName;
                db.tProduct.Add(product);
                db.SaveChanges();

                Response.Redirect("Index2.aspx");

            }
            catch (Exception ex)
  {
                lblError.Text = ex.Message;
            }
        }
    }
}

發生例外 找不到model實體

把 model 開啟 右鍵 從資料庫更新模型 ( 重建

Entity fromwork 方式 model <-> db 通常就可以

老師接下來會在mvc註記因為 到時 m v c 是跳著做的 (有講義

下課後上課 實作 edit delete

新增create頁面是個空的表單去寫出來的但

編輯edit頁面必須要有原來的值才能讓人有辦法更改

所以新增頁面後將原本的頁面內容複製過來並改為編輯相關

不能編集的內容 有兩種方式 1 直接砍掉 2 readonly

<%@ Page Title="" Language="C#" MasterPageFile="~/Site1.Master" AutoEventWireup="true" CodeBehind="Edit.aspx.cs" Inherits="MVC1.Edit" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
     <h2>產品編輯</h2>
    <div class="form-horizontal">
        <hr />
        <div class="form-group">
            <label for="id" class="control-label col-md-2">編號</label>
            <div class="col-md-10">
                <asp:TextBox ID="txtId" runat="server" class="form-control" ReadOnly="true"></asp:TextBox>
            </div>
        </div>

        <div class="form-group">
            <label for="name" class="control-label col-md-2">品名</label>
            <div class="col-md-10">
 <asp:TextBox ID="txtName" runat="server" class="form-control"></asp:TextBox>
            </div>
        </div>

        <div class="form-group">
            <label for="price" class="control-label col-md-2">單價</label>
            <div class="col-md-10">
                <asp:TextBox ID="txtPrice" runat="server" class="form-control" TextMode="Number"></asp:TextBox>
            </div>
        </div>

        <div class="form-group">
            <label for="img" class="control-label col-md-2">圖</label>
            <div class="col-md-10">
                <asp:FileUpload ID="FileUpload1" runat="server" />
            </div>
             <div class="col-md-10">
                 <asp:Image ID="Image1" runat="server" />
                 <asp:Label ID="lblShowImg" runat="server"></asp:Label>
            </div>
        </div>

         <div class="form-group">
            <div class="col-md-offset-2 col-md-10">
                <asp:Button ID="btnSave" runat="server" Text="儲存" class="btn btn-warnning" />
              
            </div>
        </div>
    </div>
     <div>
        <a href="Index2.aspx">返回產品列表</a>
</div>

</asp:Content>

介面弄好後重點是要怎樣把資料讀過來?

必須要先給產品編號去要產品資料

回到index2將編輯扭下commandname 判斷 編輯或刪除

Commamdargument=帶值去後端

databydingas????dafqwke 資料繫結??

<asp:LinkButton ID="lnkEdit" runat="server" CommandName="Edit" CommandArgument='<%# Eval("fId") %>'>編輯</asp:LinkButton>

在index2新增 onrowcommand 並到後製程式碼寫邏輯,

<asp:GridView ID="GridView1" runat="server" CssClass="table" AutoGenerateColumns="False" GridLines="None" OnRowCommand="GridView1_RowCommand">

接收前面資料編號,在去弄成url轉值去edit頁面,就能讓 edit頁面知道要編輯哪一筆資料

protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            string fId = e.CommandArgument.ToString();

            if(e.CommandName=="Edit")
            {
                Response.Redirect("Edit.aspx?fId="+ fId);
            }
        }

在回到 edit 後製程式碼,建立db物件,在load時就要讀產品資料出來,

所以 字串變數去取得網址 request.querystring裡面的

產品代號附加欄位aspx?後面的

 protected void Page_Load(object sender, EventArgs e)
        {
            //由url取得產品代號
            string fId = Request.QueryString["fId"].ToString();

透過entityfromwork不用寫sql那要怎要資料呢?

Linq 架構寫法操作資料庫

Lambda 為 Linq的擴充寫法 類似相對 linq vs lambda = js vs jq

 //Lambda
            var product = db.tProduct.Where(m => m.fId == fId).FirstOrDefault();

新版的c#類似像js可以用以下方式

Var 資料庫.資料表.方法(參數).否則()

方法where

(參數)=(變數資料表 => 變數資料表.id == 資料表.id)

=>箭頭 ->指表 ©

改動了 img 變成 label ????

好像是要偷吃步不知道吃啥

現在步驟是 把model資料塞進 要顯示出來的前面的html的id的變數

Model抓出來的值餵給變數欄位

然後就能測試顯示了

圖片檔案如果有問題很多時候是路徑問題 結果是單引號錯

前端

<%@ Page Title="" Language="C#" MasterPageFile="~/Site1.Master" AutoEventWireup="true" CodeBehind="Edit.aspx.cs" Inherits="MVC1.Edit" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
     <h2>產品編輯</h2>
    <div class="form-horizontal">
        <hr />
        <div class="form-group">
            <label for="id" class="control-label col-md-2">編號</label>
            <div class="col-md-10">
                <asp:TextBox ID="txtId" runat="server" class="form-control" ReadOnly="true"></asp:TextBox>
            </div>
        </div>
   <div class="form-group">
            <label for="name" class="control-label col-md-2">品名</label>
            <div class="col-md-10">
                <asp:TextBox ID="txtName" runat="server" class="form-control"></asp:TextBox>
            </div>
        </div>

        <div class="form-group">
            <label for="price" class="control-label col-md-2">單價</label>
            <div class="col-md-10">
                <asp:TextBox ID="txtPrice" runat="server" class="form-control" TextMode="Number"></asp:TextBox>
            </div>
        </div>

        <div class="form-group">
            <label for="img" class="control-label col-md-2">圖</label>
            <div class="col-md-10">
                <asp:FileUpload ID="FileUpload1" runat="server" />
            </div>
             <div class="col-md-10">
                 
                 <asp:Label ID="lblShowImg" runat="server"></asp:Label>
            </div>
        </div>

         <div class="form-group">
            <div class="col-md-offset-2 col-md-10">
                <asp:Button ID="btnSave" runat="server" Text="儲存" class="btn btn-warning" />
              
            </div>
        </div>
</div>
     <div>
        <a href="Index2.aspx">返回產品列表</a>
    </div>

</asp:Content>

後端

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
//00-4-1 using MVC1.Models
using MVC1.Models;

namespace MVC1
{
    public partial class Edit : System.Web.UI.Page
    {
        //00-4-2 使用Entity建立DB物件
        dbProductEntities db = new dbProductEntities();

        protected void Page_Load(object sender, EventArgs e)
        {
            //00-4-3 讀出要修改的產品資料並放入表單欄位中

            //由url取得產品代號
            string fId = Request.QueryString["fId"].ToString();

            //Lambda
    var product = db.tProduct.Where(m => m.fId == fId).FirstOrDefault();
            txtId.Text = product.fId;
            txtName.Text = product.fName;
            txtPrice.Text = product.fPrice.ToString();
            lblShowImg.Text = "<img src='images/"+product.fImg+"' width='200' />";

        }
    }
}

題外話:

Signalr

回到正題 ( 現在還都是 webform

邏輯:

按下儲存按鈕後要更新資料庫內容

圖片要多寫一個if判斷有沒有要更新圖,

(( 沒有要更新也要取原來的資料出來改回去

跟新增很像所以複製新增的來改

這邊省時間都沒有加一些驗證判斷實務上必須要

操作方式跟剛剛新增的方式幾乎一樣

刪除邏輯:

按鈕commamdname

傳產品代號

刪除 model裡面的 資料

在savechanges 刪除資料庫

然後更新girdview更新佔存資料庫

重新databind

實務上跳視窗確認要不要刪除

Onclientclick=return confirm(‘您確定要刪除嗎?’)

重複寫的地方值接獨立出一個不用回傳值的函數 loadData() 內聚力高偶合力低

大瑕疵

除了刪除資料庫資料外

檔案也要刪除 ( 圖片檔 )

邏輯 :

抓取檔案路徑然後根據id刪除

中午下課

早上bug

Var 那個老師選擇妥協把db往上放 我猜是新功能觸發的問題

資料無法更新 page load 要加上 !IsPostBack 不然就會post back

所以怎麼取都取到舊的值

如果上傳新的圖片檔案刪除要把既有的圖片檔案刪除

資料刪除可以刪掉但是 onrowdeleting 會觸發的函數

忽略了 commandname = delete 一定會觸發上述

方式為 刪掉 onrowdeleting 改掉 commandname = killme

因為之前 edit是在別頁觸發的好像就沒這個問題

前端 edit ( delete 也在 edit內

<%@ Page Title="" Language="C#" MasterPageFile="~/Site1.Master" AutoEventWireup="true" CodeBehind="Edit.aspx.cs" Inherits="MVC1.Edit" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
     <h2>產品編輯</h2>
    <div class="form-horizontal">
        <hr />
        <div class="form-group">
            <label for="id" class="control-label col-md-2">編號</label>
            <div class="col-md-10">
                <asp:TextBox ID="txtId" runat="server" class="form-control" ReadOnly="true"></asp:TextBox>
            </div>
        </div>

        <div class="form-group">
            <label for="name" class="control-label col-md-2">品名</label>
            <div class="col-md-10">
                <asp:TextBox ID="txtName" runat="server" class="form-control"></asp:TextBox>
            </div>
        </div>

        <div class="form-group">
            <label for="price" class="control-label col-md-2">單價</label>
            <div class="col-md-10">
                <asp:TextBox ID="txtPrice" runat="server" class="form-control" TextMode="Number"></asp:TextBox>
            </div>
        </div>

        <div class="form-group">
            <label for="img" class="control-label col-md-2">圖</label>
            <div class="col-md-10">
                <asp:FileUpload ID="FileUpload1" runat="server" />
            </div>
div class="col-md-10">
                 
                 <asp:Label ID="lblShowImg" runat="server"></asp:Label>
            </div>
        </div>

         <div class="form-group">
            <div class="col-md-offset-2 col-md-10">
                <asp:Button ID="btnSave" runat="server" Text="儲存" class="btn btn-warning" OnClick="btnSave_Click" />
              
            </div>
        </div>
    </div>
     <div>
        <a href="Index2.aspx">返回產品列表</a>
    </div>

</asp:Content>

後端 edit

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
//00-4-1 using MVC1.Models
using MVC1.Models;

namespace MVC1
{
    public partial class Edit : System.Web.UI.Page
{
        //00-4-2 使用Entity建立DB物件
        dbProductEntities db = new dbProductEntities();

        protected void Page_Load(object sender, EventArgs e)
        {
            //00-4-3 讀出要修改的產品資料並放入表單欄位中
            if (!IsPostBack)
            {
                //由url取得產品代號
                string fId = Request.QueryString["fId"].ToString();

                //Lambda
                var product = db.tProduct.Where(m => m.fId == fId).FirstOrDefault();
                txtId.Text = product.fId;
                txtName.Text = product.fName;
                txtPrice.Text = product.fPrice.ToString();
                lblShowImg.Text = "<img src='images/" + product.fImg + "' width='200' />";
            }
        }

        //按 [儲存] 鈕時執行
        protected void btnSave_Click(object sender, EventArgs e)
        {

            //dbProductEntities db = new dbProductEntities();
            string fileName, fId;
            fId = txtId.Text;
            var product = db.tProduct.Where(m => m.fId == fId).FirstOrDefault();
            fileName = product.fImg;

            //圖片上傳儲存
            if (FileUpload1.HasFile)
            {
                FileUpload1.SaveAs(Server.MapPath("images/" + FileUpload1.FileName));
                fileName = FileUpload1.FileName;
            }

            //00-3-4 使用Entity Framework新增資料
            product.fName = txtName.Text;
            product.fPrice = Convert.ToDecimal(txtPrice.Text);
            product.fImg = fileName;//如果使用者沒上傳就用原來的檔名
            db.SaveChanges();//回寫結果

            Response.Redirect("Index2.aspx");



        }
    }
}

老師版本的有把程式碼步驟放上去 index2.aspx.cs

//00-1 利用Entity Framework建立Model(DB First)

//00-1-1 建立dbProduct.mdb資料庫Model

// 在Models上按右鍵,選擇加入,新增項目,資料,ADO.NET實體資料模型,名稱輸入"ProductModel",按新增

// 來自資料庫的EF Designer

// 連接dbProduct.mdf資料庫,連線名稱不修改,按下一步按鈕

// 選擇Entity Framework 6.x, 按下一步按鈕

// 資料表勾選"tProuct", 按完成鈕

// 若跳出詢問方法按確定鈕

//00-1-2 在專案上按右鍵,建置

//00-2 撰寫Index2.aspx的後置程式碼

//00-2-1 using MVC1.Models

//00-2-2 使用Entity建立DB物件

//00-2-3 將讀出的資料餵給GridView

//00-2-4 撰寫GridView裡的按鈕被按下時所要做的事

//00-3 撰寫Create.aspx的後置程式碼

//00-3-1 using MVC1.Models

//00-3-2 撰寫"儲存"鈕被按下時要做的事

//00-3-3 使用Entity建立DB物件

//00-3-4 使用Entity Framework新增資料

//00-4 撰寫Edit.aspx的後置程式碼

//00-4-1 using MVC1.Models

//00-4-2 使用Entity建立DB物件

//00-4-3 讀出要修改的產品資料並放入表單欄位中

//00-4-4 撰寫"儲存"鈕被按下時要做的事

//00-4-5 使用Entity Framework更新資料

下午

第五次專題報告 – ERD所衍生的資料庫與關聯圖

第一組

已經時做資料庫與資料上傳頁面串接

更改了一些上次覺得有問題的ermodel內容

第四組

Remodel 增加留言板 然後 檢舉修改 讚的部分修改

老師說明

問題很難問?

工科論文 因為做出來了怎問?

管理面很好問

你們有沒有考慮到什麼?

Member 為何用 email當作主key

可是erd是錯的

Pwd長度 varchar 4000 雜湊

雜湊完不知道本來密碼那怎辦

直接給新的密碼

第五組

log 修改紀錄也要存表

違規分為三種

用使用者 ( 包含管理者 商城與寄信 違規與修改紀錄log

個人會員信息

分為四個關聯 共通資料庫

很多連遊玩實際記錄也會記錄下來

以下組別因為大雷雨所以 … ( 雷聲大雨點小所以就不深入記錄了

題外話 經濟

本益比 越小越好

本夢比

Dos 時帶 很多遊戲都是 大宇做的

台灣的盤都是外資盤操盤寡ˇ

佔獨占性競爭等等

看來要去看經濟學

市場機制 颱風沒來菜還是很貴 中華電信 寡占市場 不賺錢打趴對手 價格歌喉戰

個體撿到便宜 但總體經濟降低 市場不活絡 消費者剩餘 市場GG

拿不出綜效 只會持續一年

EX劉兆玄 企業主都知道但有利益都不講

金庸群俠傳Dos版遊戲下載+攻略+密技+存檔修改,超經典骨灰級RPG遊戲! 軟體下載 免安裝版下載
Logo
signalr - Google SearchGoogle
Logo
entityfromwork - Google SearchGoogle
Logo
entityfromwork - Google SearchGoogle
Logo