或許大家會說,網上已經很多類似文章了,包括孟子的,為什么要再寫一次?
我想我們不僅僅要會實現,更多的是需要理解。
下面先帖出代碼,再分析一下其中的一些關鍵代碼。
數據庫表名:tb1,其中有3個字段,分別是ID自增的主鍵、vName varchar(50)、iAge int
(以下代碼沒有做任何錯誤捕獲處理)
前臺
<%
@ Page language
=
"
c#
"
Codebehind
=
"
WebForm5.aspx.cs
"
AutoEventWireup
=
"
false
"
Inherits
=
"
csdn.WebForm5
"
%>
<!
DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
>
<
HTML
>
<
HEAD
>
<
title
>
WebForm5
</
title
>
<
meta
content
="Microsoft Visual Studio .NET 7.1"
name
="GENERATOR"
>
<
meta
content
="C#"
name
="CODE_LANGUAGE"
>
<
meta
content
="JavaScript"
name
="vs_defaultClientScript"
>
<
meta
content
="http://schemas.microsoft.com/intellisense/ie5"
name
="vs_targetSchema"
>
</
HEAD
>
<
body
>
<
form
id
="Form1"
method
="post"
runat
="server"
>
<
asp:textbox
id
="TextBox1"
runat
="server"
Width
="88px"
></
asp:textbox
>
<
asp:TextBox
id
="TextBox2"
runat
="server"
Width
="40px"
></
asp:TextBox
>
<
asp:Button
id
="Button1"
runat
="server"
Text
="添加"
></
asp:Button
>
<
asp:datagrid
id
="DataGrid1"
runat
="server"
AutoGenerateColumns
="False"
DataKeyField
="ID"
AllowPaging
="True"
PageSize
="5"
OnEditCommand
="edit"
OnCancelCommand
="cancel"
OnUpdateCommand
="update"
>
<
Columns
>
<
asp:TemplateColumn
HeaderText
="姓名"
>
<
ItemTemplate
>
<%
# DataBinder.
Eval
(Container.DataItem,
"
vName
"
)
%>
</
ItemTemplate
>
<
EditItemTemplate
>
<
asp:TextBox
id
="name"
Runat
="server"
Text
='<%#
DataBinder.Eval(Container.DataItem,"vName") %
>
' Width="88px">
</
asp:TextBox
>
</
EditItemTemplate
>
</
asp:TemplateColumn
>
<
asp:TemplateColumn
HeaderText
="年齡"
>
<
ItemTemplate
>
<%
# DataBinder.
Eval
(Container.DataItem,
"
iAge
"
)
%>
</
ItemTemplate
>
<
EditItemTemplate
>
<
asp:TextBox
id
="age"
Runat
="server"
Text
='<%#
DataBinder.Eval(Container.DataItem,"iAge") %
>
' Width="40px">
</
asp:TextBox
>
</
EditItemTemplate
>
</
asp:TemplateColumn
>
<
asp:EditCommandColumn
UpdateText
="更新"
CancelText
="取消"
EditText
="編輯"
></
asp:EditCommandColumn
>
<
asp:ButtonColumn
Text
="刪除"
CommandName
="del"
></
asp:ButtonColumn
>
</
Columns
>
<
PagerStyle
Mode
="NumericPages"
></
PagerStyle
>
</
asp:datagrid
></
form
>
</
body
>
</
HTML
>
后臺
using
System;
using
System.Collections;
using
System.ComponentModel;
using
System.Data;
using
System.Data.SqlClient;
using
System.Drawing;
using
System.Web;
using
System.Web.SessionState;
using
System.Web.UI;
using
System.Web.UI.WebControls;
using
System.Web.UI.HtmlControls;
namespace
csdn
{
///
<summary>
///
WebForm5 的摘要說明。
///
</summary>
public
class
WebForm5 : System.Web.UI.Page
{
protected
System.Web.UI.WebControls.TextBox TextBox1;
protected
System.Web.UI.WebControls.TextBox TextBox2;
protected
System.Web.UI.WebControls.Button Button1;
protected
System.Web.UI.WebControls.DataGrid DataGrid1;
private
void
Page_Load(
object
sender, System.EventArgs e)
{
//
在此處放置用戶代碼以初始化頁面
if
(
!
IsPostBack)
{
SetBind();
}
}
protected
void
SetBind()
{
SqlConnection conn
=
new
SqlConnection(System.Configuration.ConfigurationSettings.AppSettings[
"
conn
"
]);
SqlDataAdapter da
=
new
SqlDataAdapter(
"
select * from tb1
"
,conn);
DataSet ds
=
new
DataSet();
da.Fill(ds,
"
table1
"
);
this
.DataGrid1.DataSource
=
ds.Tables[
"
table1
"
];
this
.DataGrid1.DataBind();
}
Web 窗體設計器生成的代碼
private
void
Button1_Click(
object
sender, System.EventArgs e)
{
SqlConnection conn
=
new
SqlConnection(System.Configuration.ConfigurationSettings.AppSettings[
"
conn
"
]);
SqlCommand comm
=
new
SqlCommand(
"
insert into tb1 (vName,iAge) values (@vName,@iAge)
"
,conn);
SqlParameter parm1
=
new
SqlParameter(
"
@vName
"
,SqlDbType.NVarChar,
50
);
parm1.Value
=
this
.TextBox1.Text;
SqlParameter parm2
=
new
SqlParameter(
"
@iAge
"
,SqlDbType.Int);
parm2.Value
=
this
.TextBox2.Text;
comm.Parameters.Add(parm1);
comm.Parameters.Add(parm2);
conn.Open();
comm.ExecuteNonQuery();
conn.Close();
SetBind();
}
private
void
DataGrid1_ItemCommand(
object
source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
if
(e.CommandName
==
"
del
"
)
{
SqlConnection conn
=
new
SqlConnection(System.Configuration.ConfigurationSettings.AppSettings[
"
conn
"
]);
SqlCommand comm
=
new
SqlCommand(
"
delete from tb1 where ID=@id
"
,conn);
SqlParameter parm1
=
new
SqlParameter(
"
@id
"
,SqlDbType.Int);
parm1.Value
=
this
.DataGrid1.DataKeys[e.Item.ItemIndex];
comm.Parameters.Add(parm1);
conn.Open();
comm.ExecuteNonQuery();
conn.Close();
SetBind();
}
}
private
void
DataGrid1_PageIndexChanged(
object
source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
{
this
.DataGrid1.CurrentPageIndex
=
e.NewPageIndex;
SetBind();
}
protected
void
edit(
object
sender,DataGridCommandEventArgs e)
{
this
.DataGrid1.EditItemIndex
=
e.Item.ItemIndex;
SetBind();
}
protected
void
cancel(
object
sender,DataGridCommandEventArgs e)
{
w
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
