DataGridView 使用DataSet添加(行,列),删除(行,列),修改(行,列,单元格) rt 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 给个DataList的例子你<%@ Page Language="C#" AutoEventWireup="true" CodeFile="DataList.aspx.cs" Inherits="_Default" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head id="Head1" runat="server"> <title>DataList</title></head><body> <form id="form1" runat="server"> <div> <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:testConnectionString %>" OldValuesParameterFormatString="original_{0}" SelectCommand="SELECT * FROM [cloud]"> </asp:SqlDataSource> <asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:testConnectionString2 %>" DeleteCommand="DELETE FROM cloud WHERE (id = @id)" SelectCommand="SELECT * FROM [cloud]" UpdateCommand="UPDATE cloud SET name = @name, num = @num WHERE (id = @id)"> <DeleteParameters> <asp:Parameter Name="id" /> </DeleteParameters> <UpdateParameters> <asp:Parameter Name="name" /> <asp:Parameter Name="num" /> <asp:Parameter Name="id" /> </UpdateParameters> </asp:SqlDataSource> <br /> <asp:DataList ID="DataList1" runat="server" DataKeyField="id" DataSourceID="SqlDataSource1" OnEditCommand="DataList1_EditCommand" OnCancelCommand="DataList1_CancelCommand" OnDeleteCommand="DataList1_DeleteCommand" OnUpdateCommand="DataList1_UpdateCommand"> <ItemTemplate> id: <asp:Label ID="idLabel" runat="server" Text='<%# Eval("id") %>'></asp:Label><br /> name: <asp:Label ID="nameLabel" runat="server" Text='<%# Eval("name") %>'></asp:Label><br /> num: <asp:Label ID="numLabel" runat="server" Text='<%# Eval("num") %>'></asp:Label><br /> <asp:Button ID="ItemEditButton" runat="server" Text="编辑" CommandName="edit" /> <asp:Button ID="ItemDeleteButton" runat="server" Text="删除" CommandName="delete" /> <br /> </ItemTemplate> <EditItemTemplate> id: <asp:Label ID="idLabel" runat="server" Text='<%# Eval("id") %>'></asp:Label><br /> name: <asp:TextBox ID="nameLabel" runat="server" Text='<%# Eval("name") %>'></asp:TextBox><br /> num: <asp:TextBox ID="numLabel" runat="server" Text='<%# Eval("num") %>'></asp:TextBox><br /> <asp:Button runat="server" ID="ItemSaveButton" Text="保存" CommandName="update" /> <asp:Button runat="server" ID="ItemCancelButton" Text="取消" CommandName="cancel" /> <br /> </EditItemTemplate> </asp:DataList> </div> </form></body></html>using System;using System.Data;using System.Configuration;using System.Collections;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;public partial class _Default : System.Web.UI.Page{ protected void Page_Load(object sender, EventArgs e) { } protected void DataList1_EditCommand(object source, DataListCommandEventArgs e) { DataList1.EditItemIndex = e.Item.ItemIndex; DataBind(); } protected void DataList1_CancelCommand(object source, DataListCommandEventArgs e) { DataList1.EditItemIndex = -1; DataBind(); } protected void DataList1_DeleteCommand(object source, DataListCommandEventArgs e) { // (1) 从选中记录中获取recordID string recordID = (DataList1.DataKeys[e.Item.ItemIndex]).ToString(); // (2) 获取参数customerID的引用 System.Web.UI.WebControls.Parameter param = SqlDataSource2.DeleteParameters["id"]; // (3) 设置参数的DefaultValue为要删除记录的ID param.DefaultValue = recordID; // (4) 删除记录 SqlDataSource2.Delete(); // (5) 重新绑定 DataBind(); } protected void DataList1_UpdateCommand(object source, DataListCommandEventArgs e) { // (1) 从选中记录中获取信息 string recordID = (DataList1.DataKeys[e.Item.ItemIndex]).ToString(); string recordName = ((TextBox)e.Item.FindControl("nameLabel")).Text; string recordNum = ((TextBox)e.Item.FindControl("numLabel")).Text; // (2) 设置参数的DefaultValue为要更新记录 SqlDataSource2.UpdateParameters["id"].DefaultValue = recordID; SqlDataSource2.UpdateParameters["name"].DefaultValue = recordName; SqlDataSource2.UpdateParameters["num"].DefaultValue = recordNum; // (3) 更新记录 SqlDataSource2.Update(); // (4) 重新绑定 DataList1.EditItemIndex = -1; DataBind(); }} //添加行 private void addRow() { DataRow dr = ds.Tables[0].NewRow(); dr["sno"] = "34"; dr["cno"] = "Mr xu"; ds.Tables[0].Rows.Add(dr); dataGridView1.DataSource = ds.Tables[0].DefaultView; } //删除行 private void deleteRow() { foreach (DataRow dr1 in ds.Tables[0].Rows) { if (dr1["sno"].ToString() == "0504")//sno为主键 { ds.Tables[0].Rows.Remove(dr1); dataGridView1.DataSource = ds.Tables[0].DefaultView; } } } //修改行 private void alterRow() { foreach (DataRow dr1 in ds.Tables[0].Rows) { if (dr1["sno"].ToString() == "0504") { ds.Tables[0].Rows.Remove(dr1); dr1["sno"] = "0504"; dr1["cno"] = "sdff"; ds.Tables[0].Rows.Add(dr1); dataGridView1.DataSource = ds.Tables[0].DefaultView; } } } 简单啊.要这样 什么都不做 只需要吧DATASET更新后 提交状态就OK的 在DATAGRIDVIEW里面直接修改 SqlCommandBuilder sb = new SqlCommandBuilder(SqlDataAdapter);//修改状态SqlDataAdapter.Update(dt);//更新状态ds.Tables[0].AcceptChanges();//提交状态 c#中,范围验证控件 WCF高级编程这本书咋样? C# 关于事件注册代码不理解 C# 关于Bin文件夹的引用 怎样整合.net主网站和asp子目录啊? 单选按钮的问题。。。 Winform标题栏放contextmenustrip的问题 有做过RTF的吗,有个插入图片的问题,请大虾帮忙 学习C#的教程! Codedom 代码生成问题 如果做如QQ上线提醒那样的提示框? 就像拔U盘时的 标注式的实现方法 做过这个的朋友请进来看看
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title>DataList</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:testConnectionString %>"
OldValuesParameterFormatString="original_{0}" SelectCommand="SELECT * FROM [cloud]">
</asp:SqlDataSource>
<asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:testConnectionString2 %>"
DeleteCommand="DELETE FROM cloud WHERE (id = @id)" SelectCommand="SELECT * FROM [cloud]"
UpdateCommand="UPDATE cloud SET name = @name, num = @num WHERE (id = @id)">
<DeleteParameters>
<asp:Parameter Name="id" />
</DeleteParameters>
<UpdateParameters>
<asp:Parameter Name="name" />
<asp:Parameter Name="num" />
<asp:Parameter Name="id" />
</UpdateParameters>
</asp:SqlDataSource>
<br />
<asp:DataList ID="DataList1" runat="server" DataKeyField="id" DataSourceID="SqlDataSource1"
OnEditCommand="DataList1_EditCommand" OnCancelCommand="DataList1_CancelCommand"
OnDeleteCommand="DataList1_DeleteCommand" OnUpdateCommand="DataList1_UpdateCommand">
<ItemTemplate>
id:
<asp:Label ID="idLabel" runat="server" Text='<%# Eval("id") %>'></asp:Label><br />
name:
<asp:Label ID="nameLabel" runat="server" Text='<%# Eval("name") %>'></asp:Label><br />
num:
<asp:Label ID="numLabel" runat="server" Text='<%# Eval("num") %>'></asp:Label><br />
<asp:Button ID="ItemEditButton" runat="server" Text="编辑" CommandName="edit" />
<asp:Button ID="ItemDeleteButton" runat="server" Text="删除" CommandName="delete" />
<br />
</ItemTemplate>
<EditItemTemplate>
id:
<asp:Label ID="idLabel" runat="server" Text='<%# Eval("id") %>'></asp:Label><br />
name:
<asp:TextBox ID="nameLabel" runat="server" Text='<%# Eval("name") %>'></asp:TextBox><br />
num:
<asp:TextBox ID="numLabel" runat="server" Text='<%# Eval("num") %>'></asp:TextBox><br />
<asp:Button runat="server" ID="ItemSaveButton" Text="保存" CommandName="update" />
<asp:Button runat="server" ID="ItemCancelButton" Text="取消" CommandName="cancel" />
<br />
</EditItemTemplate>
</asp:DataList> </div>
</form>
</body>
</html>
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{ }
protected void DataList1_EditCommand(object source, DataListCommandEventArgs e)
{
DataList1.EditItemIndex = e.Item.ItemIndex;
DataBind();
} protected void DataList1_CancelCommand(object source, DataListCommandEventArgs e)
{
DataList1.EditItemIndex = -1;
DataBind();
} protected void DataList1_DeleteCommand(object source, DataListCommandEventArgs e)
{
// (1) 从选中记录中获取recordID
string recordID = (DataList1.DataKeys[e.Item.ItemIndex]).ToString();
// (2) 获取参数customerID的引用
System.Web.UI.WebControls.Parameter param = SqlDataSource2.DeleteParameters["id"];
// (3) 设置参数的DefaultValue为要删除记录的ID
param.DefaultValue = recordID;
// (4) 删除记录
SqlDataSource2.Delete();
// (5) 重新绑定
DataBind();
} protected void DataList1_UpdateCommand(object source, DataListCommandEventArgs e)
{
// (1) 从选中记录中获取信息
string recordID = (DataList1.DataKeys[e.Item.ItemIndex]).ToString();
string recordName = ((TextBox)e.Item.FindControl("nameLabel")).Text;
string recordNum = ((TextBox)e.Item.FindControl("numLabel")).Text;
// (2) 设置参数的DefaultValue为要更新记录
SqlDataSource2.UpdateParameters["id"].DefaultValue = recordID;
SqlDataSource2.UpdateParameters["name"].DefaultValue = recordName;
SqlDataSource2.UpdateParameters["num"].DefaultValue = recordNum;
// (3) 更新记录
SqlDataSource2.Update();
// (4) 重新绑定
DataList1.EditItemIndex = -1;
DataBind();
}
}
private void addRow()
{
DataRow dr = ds.Tables[0].NewRow();
dr["sno"] = "34";
dr["cno"] = "Mr xu";
ds.Tables[0].Rows.Add(dr);
dataGridView1.DataSource = ds.Tables[0].DefaultView;
}
//删除行
private void deleteRow()
{
foreach (DataRow dr1 in ds.Tables[0].Rows)
{
if (dr1["sno"].ToString() == "0504")//sno为主键
{
ds.Tables[0].Rows.Remove(dr1);
dataGridView1.DataSource = ds.Tables[0].DefaultView;
}
}
}
//修改行
private void alterRow()
{
foreach (DataRow dr1 in ds.Tables[0].Rows)
{
if (dr1["sno"].ToString() == "0504")
{
ds.Tables[0].Rows.Remove(dr1);
dr1["sno"] = "0504";
dr1["cno"] = "sdff";
ds.Tables[0].Rows.Add(dr1);
dataGridView1.DataSource = ds.Tables[0].DefaultView;
}
}
}
在DATAGRIDVIEW里面直接修改
SqlDataAdapter.Update(dt);//更新状态
ds.Tables[0].AcceptChanges();//提交状态