您所在的位置: 程序员家园 -> 家园博客 ->
 
在哪里摔倒
就在哪里自己爬起来

用户登录

查  找

最新评论

最新留言

常用网站

网易邮箱 GMAIL  

百度搜索 MSDN

霏凡软件 BT精品

影视帝国 射 手 网

电驴下载 全 库 网

友情连接

茄菲的窝 冰冰博客

枫叶飘零 玫  瑰

ACEN 云 豹 子

统  计



做流程节点的处理,总结一下DataTable的一些操作
狼子 发表于 2007-6-25 18:17:00 阅读全文 | 回复(0) | 引用通告 | 编辑  asp.net查看本站使用过本标签的日志查看本站使用过本标签的用户

没别的说,看代码就可以了,cs文件里加上了很全的注释,对DataTable的操作,初始化、修改、添加、删除、检索全都有了

DTinGridView.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="DTinGridView.aspx.cs" Inherits="test_DTinGridView" %>
<!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 runat="server">
    <title>测试DataTable的操作,不带数据检验,NNLL 2007年6月25日18时16分</title>
</head>
<body>
    <form id="form1" runat="server">
    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False">
        <Columns>
            <asp:BoundField DataField="step" HeaderText="step" />
            <asp:BoundField DataField="uid" HeaderText="uid" />
            <asp:BoundField DataField="una" HeaderText="una" />
        </Columns>
    </asp:GridView>
    <p>
        在第
        <asp:TextBox ID="TextBoxAddRow" runat="server" Width="40px">1</asp:TextBox>
        行后添加
        uid:
        <asp:TextBox ID="TextBoxAddUid" runat="server" Width="40px">10</asp:TextBox>
        una:
        <asp:TextBox ID="TextBoxAddUna" runat="server" Width="40px">天天</asp:TextBox>
        <asp:Button ID="ButtonAdd" runat="server" Text="添加" OnClick="ButtonAdd_Click" />
    </p>
    <p>
        删除第
        <asp:TextBox ID="TextBoxDelRow" runat="server" Width="40px">1</asp:TextBox>
        行
        <asp:Button ID="ButtonDel" runat="server" Text="删除" OnClick="ButtonDel_Click" />
    </p>
    <p>
        修改第
        <asp:TextBox ID="TextBoxEditRow" runat="server" Width="40px">1</asp:TextBox>
        行的una为
        <asp:TextBox ID="TextBoxEditUna" runat="server" Width="40px">地地</asp:TextBox>
        <asp:Button ID="Button3" runat="server" Text="修改" OnClick="Button3_Click" />
    </p>
    </form>
</body>
</html>


DTinGridView.aspx.cs

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 test_DTinGridView : System.Web.UI.Page
{
    protected static DataTable dt;
    protected void Page_Load(object sender, EventArgs e)
    {
        if (dt == null)
        {
            //初始化DataTable
            dt = new DataTable("opTable");
            //定义数据类型
            System.Type stringType = System.Type.GetType("System.String");
            System.Type intType = System.Type.GetType("System.Int16");
            //添加列
            dt.Columns.Add(new DataColumn("step", intType));
            dt.Columns.Add(new DataColumn("uid", intType));
            dt.Columns.Add(new DataColumn("una", stringType));
            //添加行
            dt.Rows.Add(new object[] { 1, 1, "阿一" });
            dt.Rows.Add(new object[] { 2, 2, "阿二" });
            dt.Rows.Add(new object[] { 3, 3, "阿三" });
            dt.Rows.Add(new object[] { 4, 4, "阿四" });
            dt.Rows.Add(new object[] { 5, 5, "阿五" });
            dt.Rows.Add(new object[] { 6, 6, "阿六" });
            //保存
            dt.AcceptChanges();
        }
        if (!IsPostBack)
        {
            ShowDataInGridView();
        }
    }

    private void ShowDataInGridView()
    {
        //用GridView显示,查看现在的数据
        GridView1.DataSource = dt;
        GridView1.DataBind();
    }

    protected void ButtonAdd_Click(object sender, EventArgs e)
    {
        //添加
        int step,uid;
        string una;
        //取添加的信息
        step = Convert.ToInt16(TextBoxAddRow.Text);
        uid = Convert.ToInt32(TextBoxAddUid.Text);
        una = TextBoxAddUna.Text;
        //把step后的行,step值 + 1,保证step值按顺序唯一
        ReSetStep(dt, step, true);
        if (step == 0)
        {
            //保存编号从1开始
            step = 1;
        }
        else
        {
            step++;
        }
        //添加行
        dt.Rows.Add(new object[] { step, uid, una });
        //保存
        dt.AcceptChanges();
        //显示结果
        ShowDataInGridView();
    }
    protected void ButtonDel_Click(object sender, EventArgs e)
    {
        //删除
        int step;
        //取删除信息
        step = Convert.ToInt16(TextBoxDelRow.Text);
        //删除行
        DeleteDataFromDT(dt, step);
        //把被删除的行后面的行,step值 - 1,保证step值不会跳值
        ReSetStep(dt, step, false);
        //保存
        dt.AcceptChanges();
        //显示结果
        ShowDataInGridView();
    }
    protected void Button3_Click(object sender, EventArgs e)
    {
        //修改
        int step,rowIndex;
        string una;
        //取修改信息
        step = Convert.ToInt16(TextBoxEditRow.Text);
        rowIndex = step - 1;
        una = TextBoxEditUna.Text;
        //按指定行号修改
        dt.Rows[rowIndex].BeginEdit();
        dt.Rows[rowIndex]["una"] = una;
        dt.Rows[rowIndex].EndEdit();
        dt.AcceptChanges();
        //显示结果
        ShowDataInGridView();
    }
    private void DeleteDataFromDT(DataTable dt, int step)
    {
        //从DataTable里按条件删除行
        DataRow[] drs = dt.Select("step=" + step.ToString());
        foreach (DataRow dr in drs)
        {
            dt.Rows.Remove(dr);
        }
        dt.AcceptChanges();
    }
    private void ReSetStep(DataTable dt, int step, bool isAdd)
    {
        //更新step值
        int stepTemp, increment;
        DataView dv;
        if (isAdd)
        {
            increment = 1;
        }
        else
        {
            increment = -1;
        }
        foreach (DataRow dr in dt.Rows)
        {
            stepTemp = Convert.ToInt16(dr["step"]);
            if (stepTemp > step)
            {
                dr.BeginEdit();
                dr["step"] = stepTemp + increment;
                dr.EndEdit();
            }
        }
        dv = dt.DefaultView;
        dv.Sort = "step Asc";
        dt = dv.Table;
        dt.AcceptChanges();
    }
}

发表评论:

    昵称:
    密码:
    主页:
    标题:
Powered by Oblog.