2021-05-12

ASP.NET使用VB - 家庭記帳簿08 - 資料更新與刪除_Access

今天要介紹資料如何更新與刪除。請打開 Visual Studio,開啟UpdateRecord.aspx,從工具箱加入GridView。請先參考「如何連接資料庫資料表- 2」,將GridView加入資料來源。然後如下圖步驟:








按確定後,會看到如下畫面。



好,現在打開IIS ,開啟UpdateRecord.aspx 網頁,如下圖。


上圖有點擠,怎麼辦?可以加上css語法。怎麼加?建議加在 Menu.html,這樣 innclude Menu.html 的網頁都可使用。以下為建議的css語法。

table.gv {
font-size: 120%;
color: #0000A2;
}

table.gv td,th {
padding:5px 10px;
text-align:center;
}

在Menu.html加入上述css語法後,請記得存檔,然後回到UpdateRecord.aspx,切換到原始檔畫面,在GridView 裡加上CssClass="gv"。好,重新整理網頁,如下圖,好看多了。




現在按這二個按鍵就可以了嗎?沒那麼神。還需要撰寫當按下按鈕時的語法,有三個地方需要撰寫:
  1. 當按下刪除時,跳出是否刪除訊息框
    <asp:Button ID="Button1" runat="server" CausesValidation="False" CommandName="Delete" Text="刪除" />改成 <asp:Button ID="Button1" runat="server" CausesValidation="False" CommandName="Delete" Text="刪除" OnClientClick="return confirm('是否刪除?');"/>
  2. 加入更新與刪除的SQL語法
    UpdateCommand="UPDATE [Diary] SET 日期=@日期 ,類別=@類別 ,科目=@科目 ,金額=@金額 , 帳戶=@帳戶 ,備註=@備註 WHERE 識別碼=@識別碼"
    DeleteCommand="DELETE FROM [Diary] WHERE 識別碼=@識別碼"
  3. 加入 DataKeyNames
如下圖,畫線部分,是加入的語法。請記得位置。



好,現在回到UpdateRecord.aspx網頁,測試是否成功。相關原始檔語法附於後,供參考。
*****************************************************************
<!-- #include file ="Menu.html" -->
<h4>更新</h4>

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource1" DataKeyNames="識別碼" CssClass="gv" >
<Columns>
<asp:BoundField DataField="識別碼" HeaderText="識別碼" InsertVisible="False" ReadOnly="True" SortExpression="識別碼" />
<asp:BoundField DataField="日期" HeaderText="日期" SortExpression="日期" />
<asp:BoundField DataField="類別" HeaderText="類別" SortExpression="類別" />
<asp:BoundField DataField="科目" HeaderText="科目" SortExpression="科目" />
<asp:BoundField DataField="金額" HeaderText="金額" SortExpression="金額" />
<asp:BoundField DataField="帳戶" HeaderText="帳戶" SortExpression="帳戶" />
<asp:BoundField DataField="備註" HeaderText="備註" SortExpression="備註" />
<asp:CommandField ButtonType="Button" ShowEditButton="True" />
<asp:TemplateField ShowHeader="False">
<ItemTemplate>
<asp:Button ID="Button1" runat="server" CausesValidation="False" CommandName="Delete" Text="刪除" OnClientClick="return confirm('是否刪除?');"/>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>

<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
ProviderName="<%$ ConnectionStrings:ConnectionString.ProviderName %>" SelectCommand="SELECT * FROM [Diary] ORDER BY [日期] DESC"
UpdateCommand="UPDATE [Diary] SET 日期=@日期 ,類別=@類別 ,科目=@科目 ,金額=@金額 , 帳戶=@帳戶 ,備註=@備註
WHERE 識別碼=@識別碼"
DeleteCommand="DELETE FROM [Diary] WHERE 識別碼=@識別碼"
>
</asp:SqlDataSource>
*****************************************************************

沒有留言:

張貼留言