【C#操作小技巧】DataTable常见操作整理

c#中DataTable还是比较方便的,我收集整理了一些常用方法。

  1. 新建表格
    DataTable dt=new DataTable();//可以带String参数,表示表名。
    DataTable dt=new DataTable(“student”);
  2. 向表中添加字段
    DataColumn dc = new DataColumn(“商品编号”, typeof(system.string));
    dt.Columns.Add(dc);//数据库的Nvarchar等类型,在此可用String兼容,可不指明数据类型
  3. 设置表特定行和列指定数据
    dt.Rows[i].SetField(dc, int.Parse(要添加的int数据);
  4. 将数据加入到表
    dt.Rows.Add(dr.ItemArray);//dr为DataRow类型
  5. 合并表
    DataTable ds=car.getGoods(v); //从数据库里读出的表
    dt.Merge(ds); //将 ds 表合并到表 dt
  6. 复制表
    dt = dt2.Clone();
  7. Compute()
    函数的参数就两个:Expression,和Filter。Expresstion是计算表达式, Filter是条件过滤器,类似sql的Where条件。
    table.Compute(“sum(value)”, “”); //求和
    table.Compute(“avg(value)”, “”); //平均
    table.Compute(“min(value)”, “”); //最小
    table.Compute(“max(value)”, “”); //最大
    table.Compute(“Avg(身高)”, “年龄 > 22 AND 姓名 LIKE ‘李*’”);
  8. 利用DataTableReader对象遍历DataTable
    using(DataTableReader reader = this.dt.CreateDataReader()){
                do
                {
                    if (!reader.HasRows)
                    {
                        Console.WriteLine("没有数据");
                    }
                    else
                    {
                        Console.WriteLine("===============开始读取数据===============");
                        while (reader.Read())
                        {
                            for (int i = 0; i < reader.FieldCount; i++)
                            {
                                Console.Write(reader[i] + "  ");
                            }
                            Console.WriteLine("");
                        }
                        Console.WriteLine("===============读取数据完成===============");
                    }
                } while (reader.NextResult());
            }
  1. 用DataTable.Select方法筛选一行或多行数据
            DataRow[] resultArray = this.dt.Select("姓名 is NULL");
            for (int i = 0; i < resultArray.Length; i++)
            {
                Console.WriteLine("姓名为空的ID:" + resultArray[i][0]);
            }
  1. 用DataTable.Find方法筛选一行数据,例如根据DataTable的主键查找1行数据
            DataRow dr = this.dt.Rows.Find("14109");
            if (null != dr)
            {
                Console.WriteLine("学号为14109的学生姓名为:" + dr[1].ToString());
            }
  1. 表格创新代码
    DataColumn dc1 = new DataColumn("编号");
    DataColumn dc2 = new DataColumn("名称");
    DataColumn dc3 = new DataColumn("数量");
    DataColumn dc4 = new DataColumn("价格");
    dt.Columns.Add(dc1);
    dt.Columns.Add(dc2);
    dt.Columns.Add(dc3);
    dt.Columns.Add(dc4);
    TemplateField fd = new TemplateField();
    fd.HeaderText = "数量";
    if (hc != null)
    {
      for (int i = 0; i < hc.Values.Count; i++)
      {
        string c = hc.Values.Keys[i];
        string v = c.Replace("goodName", "");
        DataTable ds=car.getGoods(v);
        DataRow dr=ds.Rows[0];
        //dt.Merge(ds);
        dt.Rows.Add(dr.ItemArray);
        dt.Rows[i].SetField<int>(dc3,int.Parse( hc.Values[i]));
      }
      GridView1.DataSource = dt;
      GridView1.DataKeyNames = new string[] {"编号"};
            GridView1.DataBind();
            dt.Dispose();
    }
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: C# DataTable 操作上移和下移可以通过以下步骤实现: 1. 获取当前选中行的索引值。 2. 判断是上移还是下移操作。 3. 如果是上移操作,将当前行和上一行的数据交换。 4. 如果是下移操作,将当前行和下一行的数据交换。 5. 更新 DataTable 的数据源。 以下是示例代码: ``` // 获取当前选中行的索引值 int rowIndex = dataGridView1.CurrentCell.RowIndex; // 判断是上移还是下移操作 if (e.KeyCode == Keys.Up) { // 上移操作 if (rowIndex > ) { // 获取当前行和上一行的数据 DataRow currentRow = ((DataRowView)dataGridView1.Rows[rowIndex].DataBoundItem).Row; DataRow prevRow = ((DataRowView)dataGridView1.Rows[rowIndex - 1].DataBoundItem).Row; // 交换数据 object[] temp = currentRow.ItemArray; currentRow.ItemArray = prevRow.ItemArray; prevRow.ItemArray = temp; // 更新 DataTable 的数据源 DataTable dt = (DataTable)dataGridView1.DataSource; dt.AcceptChanges(); } } else if (e.KeyCode == Keys.Down) { // 下移操作 if (rowIndex < dataGridView1.Rows.Count - 1) { // 获取当前行和下一行的数据 DataRow currentRow = ((DataRowView)dataGridView1.Rows[rowIndex].DataBoundItem).Row; DataRow nextRow = ((DataRowView)dataGridView1.Rows[rowIndex + 1].DataBoundItem).Row; // 交换数据 object[] temp = currentRow.ItemArray; currentRow.ItemArray = nextRow.ItemArray; nextRow.ItemArray = temp; // 更新 DataTable 的数据源 DataTable dt = (DataTable)dataGridView1.DataSource; dt.AcceptChanges(); } } ``` ### 回答2: 抱歉,您没有明确提供问题或话题,无法为您提供准确详细的回答。请您再次提供具体的问题或话题,我会尽力帮助您! ### 回答3: 在计算机科学中,C语言是一种高级编程语言,它由贝尔实验室的Dennis Ritchie在20世纪70年代末发明。C语言的目标是为开发操作系统和编写和许多其他应用程序提供一个可移植、高效的工具。C语言具有许多使用和优点,其中一些包括: 1. 简单明了:C语言的语法和语义是简单的,容易理解和学习。此外,C语言没有太多的约束性,程序员可以自由地编写代码。 2. 低级别:C语言的低级别语法让程序员可以操纵内存,从而在效率上得到优化。C语言适合于编写一些对效率要求高的代码,例如操作系统和驱动程序。 3. 高度可移植性:C语言的编译器已经被移植到许多不同的计算机体系结构上。这意味着程序可以编写一次,在不同的计算机上运行。 4. 开放源代码:许多C语言编译器、库和工具是免费的,可以在不付出任何成本的情况下使用并改进。这使程序员可以在不牺牲质量的情况下提高效率。 C语言的应用非常广泛。它可以用于编写操作系统、设备驱动程序、游戏引擎、桌面应用程序、嵌入式系统等等。许多编程语言都借鉴了C语言的语法和结构,例如Java和C++。因此,C语言被认为是计算机科学的重要里程碑,对现代IT行业的发展有重要贡献。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

游戏自学

生活不易,打赏随意

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值