





















SqlCommandBuilder 注意点:
1.只能更新一个表,不能更新两个或两个以上相关联的表
2.表中必须有主键
3.更新的表中字段不能有image类型的
![]()
create table GridViewDemoTable
(
[ID] int identity(1,1) primary key,
[Name] varchar(20) unique,
[Department] varchar(20)
)
insert into GridViewDemoTable ([Name],[Department]) select '张三','市场部'
union all select '李四','研发部'
union all select '王二','策划部'
union all select '薛七','销售部'
union all select '丁一','财务部'select * from GridViewDemoTable
Code
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页</title>
</head>
<body>
<form id="form1" runat="server">
姓名:<asp:TextBox ID="txtName" runat="server"></asp:TextBox>部门:<asp:TextBox ID="txtDepartment" runat="server"></asp:TextBox>
<asp:Button ID="btnAdd" runat="server" Text="新增" OnClick="btnAdd_Click" /> <asp:Button ID="btnSave" Text="保存" runat="server" OnClick="btnSave_Click" />
<asp:GridView ID="gv" runat="server" AutoGenerateColumns="false" DataKeyNames="ID" OnRowDeleting="gv_RowDeleting" OnRowEditing="gv_RowEditing" OnRowUpdating="gv_RowUpdating" OnRowCancelingEdit="gv_RowCancelingEdit">
<Columns>
<asp:TemplateField HeaderText="姓名">
<ItemTemplate>
<%#Eval("Name") %>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtName" runat="server" Text='<%#Eval("Name") %>'></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="部门">
<ItemTemplate>
<%#Eval("Department") %>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtDepartment" runat="server" Text='<%#Eval("Department") %>'></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
<asp:CommandField ShowDeleteButton="True" />
<asp:CommandField ShowEditButton="True" />
</Columns>
</asp:GridView>
</form>
</body>
</html>
![]()
protected void Page_Load(object sender, EventArgs e)
{if (!IsPostBack)
{
DataTable dt = getDataTable();
ViewState["dt"] = dt;
gv.DataSource = dt;
gv.DataBind();
}
}private DataTable getDataTable()
{
using (SqlConnection con = new SqlConnection("server=.;uid=xxx;pwd=xxx;database=Test"))
{
SqlDataAdapter sda = new SqlDataAdapter("select * from GridViewDemoTable ", con);
DataSet ds = new DataSet();
sda.Fill(ds, "GridViewDemoTable");
if (ds.Tables.Contains("GridViewDemoTable"))
{
return ds.Tables["GridViewDemoTable"];
}
return null;
}
//end using blockDataTable dt
= ViewState["dt"] as DataTable;ViewState[
"dt"] = dt;}
protected void gv_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。