一段用c#操作datatable的代码
- using System;
- using System.Collections.Generic;
- using System.Data;
- using System.Data.SqlClient;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace TestConsole
- {
- /// <summary>
- /// 测试类
- /// </summary>
- [Serializable]
- public class TestDemo
- {
- /// <summary>
- /// 数据库连接字符串
- /// </summary>
- private readonly string connectionString = "server=.;database=TestDB;uid=sa;pwd=123456";
- /// <summary>
- /// 从数据库中查询所有记录
- /// </summary>
- /// <returns></returns>
- private DataTable GetTableFromDatabase()
- {
- using (SqlConnection conn = new SqlConnection(connectionString))
- {
- try
- {
- conn.Open();
- SqlDataAdapter sda = new SqlDataAdapter("select Id,Name,ValueA,ValueB from TestTable", conn);
- DataSet ds = new DataSet();
- sda.Fill(ds);
- DataTable dbTable = null;
- if (ds != null)
- {
- dbTable = ds.Tables[];
- }
- return dbTable;
- }
- catch (Exception e)
- {
- throw e;
- }
- }
- }
- /// <summary>
- /// 修改
- /// </summary>
- /// <param name="value"></param>
- /// <param name="nameValue"></param>
- private void Update(int value, string nameValue)
- {
- string updateSql = "update TestTable set ValueA=" + value + " where Name='" + nameValue + "'";
- using (SqlConnection conn = new SqlConnection(connectionString))
- {
- using (SqlCommand cmd = new SqlCommand(updateSql, conn))
- {
- try
- {
- conn.Open();
- int rows = cmd.ExecuteNonQuery();
- }
- catch (System.Data.SqlClient.SqlException e)
- {
- conn.Close();
- throw e;
- }
- }
- }
- }
- /// <summary>
- /// 从内存获取DataTable
- /// </summary>
- /// <returns></returns>
- private DataTable GetTableFromMemory()
- {
- DataTable dt = new DataTable("TestTable");
- dt.Columns.Add("Id", typeof(System.Int32));
- dt.Columns.Add("Name", typeof(System.String));
- dt.Columns.Add("ValueA", typeof(System.Int32));
- dt.Columns.Add("ValueB", typeof(System.String));
- DataRow row;
- row = dt.NewRow();
- row["Id"] = ;
- row["Name"] = "ItemA";
- row["ValueA"] = ;
- dt.Rows.Add(row);
- row = dt.NewRow();
- row["Id"] = ;
- row["Name"] = "ItemC";
- row["ValueA"] = ;
- dt.Rows.Add(row);
- return dt;
- }
- /// <summary>
- /// 测试方法
- /// </summary>
- public void TestMethod()
- {
- String nameValue = "ItemC";
- //从内存获取DataTable,并找到值为ItemC的记录
- DataTable memoryTable = GetTableFromMemory();
- DataRow[] memoryArr = memoryTable.Select("Name='" + nameValue + "'");
- int valueA = ;
- int.TryParse(memoryArr[]["ValueA"].ToString(), out valueA);
- //将内存表中Name=ItemC的ValueA更新到数据表中
- Update(valueA, nameValue);
- //将数据库中的ValueB数据栏及其对应的值添加到内存表中
- DataTable dbTable = GetTableFromDatabase();
- if (dbTable != null && dbTable.Rows.Count > )
- {
- //遍历数据表中的记录
- foreach (DataRow dr in dbTable.Rows)
- {
- DataRow[] tempDR = memoryTable.Select("Name='" + dr["Name"] + "'");
- if (tempDR.Length > )
- {
- tempDR[]["ValueB"] = dr["ValueB"];
- }
- else
- {
- DataRow row = memoryTable.NewRow();
- row["Id"] = dr["Id"];
- row["Name"] = dr["Name"];
- row["ValueA"] = dr["ValueA"];
- row["ValueB"] = dr["ValueB"];
- memoryTable.Rows.Add(row);
- }
- }
- }
- }
- }
- }
一段用c#操作datatable的代码的更多相关文章
- 9段高效率开发PHP程序的代码
php是世界上最好的语言 在php网站开发中,大家都希望能够快速的进行程序开发,如果有能直接使用的代码片段,提高开发效率,那将是起飞的感觉.今天由杭州php工程师送出福利来了,以下9段高效率开发PHP ...
- Redis:安装、配置、操作和简单代码实例(C语言Client端)
Redis:安装.配置.操作和简单代码实例(C语言Client端) - hj19870806的专栏 - 博客频道 - CSDN.NET Redis:安装.配置.操作和简单代码实例(C语言Client端 ...
- SELECT控件操作的JS代码示例
SELECT控件操作的JS代码示例 1 检测是否有选中 if(objSelect.selectedIndex > -1) { //说明选中 } else { //说明没有选中 } 2.动态创建s ...
- C#开发中使用Npoi操作excel实例代码
C#开发中使用Npoi操作excel实例代码 出处:西西整理 作者:西西 日期:2012/11/16 9:35:50 [大 中 小] 评论: 0 | 我要发表看法 Npoi 是什么? 1.整个Exce ...
- 30个php操作redis常用方法代码例子
From: http://www.jb51.net/article/51884.htm 这篇文章主要介绍了30个php操作redis常用方法代码例子,本文其实不止30个方法,可以操作string类型. ...
- php foreach 操作数组的代码
php foreach 操作数组的代码. foreach()有两种用法: foreach(array_name as $value) { statement; } 这里的array_na ...
- 30 个 php 操作 redis 常用方法代码例子
这篇文章主要介绍了 30 个 php 操作 redis 常用方法代码例子 , 本文其实不止 30 个方法 , 可以操作 string 类型. list 类型和 set 类型的数据 , 需要的朋友可以参 ...
- 收藏的一段关于java大数运算的代码
收藏的一段关于java大数运算的代码: package study_02.number; import java.math.BigDecimal; import java.math.BigIntege ...
- 如何使用linq操作datatable进行分组
使用微软.net的孩子们应该都知道linq吧,要知道linq可是其他高级语言没有的技术,比如php,java等等,但是起初我对linq的认识只是停留在对 list<> 的泛型集合进行操作, ...
随机推荐
- 云服务器 linux文件系统异常an error occurren during the file system check导致服务器启动失败
云服务器 linux文件系统异常an error occurren during the file system check导致服务器启动失败 文件系统宕机,重启后报错,无法启动 处理流程: 1.编辑 ...
- Web 中调用FreeSWITCH的Portal GUI配置记录
具体设定步骤: ①加载 mod_xml_rpc 模块:load mod_xml_rpc 若想让该模块在FreeSWITCH启动时而自动加载,在conf/autoload_configs/modules ...
- Java字符串的操作
判断字符串是否存在 使用str.contains("values") public class one { /*判断某个字符串是否存在*/ public static void m ...
- intellij idea svn 修改文件后,父文件夹也标注修改
svn文件修改后,默认只有当前文件更改而父文件没有标注,很不直观:查了一顿后,发现,可以设置: File—->settings—->version control—–>勾选show ...
- 步步为营-33-Md5(32)加密与Base64加密
说明: 1:直接贴码 using System; using System.Collections.Generic; using System.ComponentModel; using System ...
- jquery追加元素的不同语法
问题 项目中越来越多的地方需要实现无刷新来更新页面局部内容,使用ajax从后台获取数据然后追加到页面中.那么怎么获取数据之后如何实现元素的追加呢? 解决 jQuery提供追加元素函数,掌握常用的四种追 ...
- C#检查服务状态和启动关闭服务
WinForm 判断服务状态,显示服务名称和状态 https://blog.csdn.net/u013063880/article/details/78626200 C#获得服务,判断服务状态,启动服 ...
- jsp+servlet实现文件的上传和下载
实现文件的上传和下载首先需要理解几个知识,这样才可以很好的完成文件的上传和下载: (1):上传文件是上传到服务器上,而保存到数据库是文件名 (2):上传文件是以文件转换为二进制流的形式上传的 (3): ...
- sed & awk常用正则表达式
正则表达式元字符 正则表达式中有两种基本元素: 以字面值或变量表示的值(如.代表任意单个字符). 操作符(如*代表将前面的字符重复任意次). 元字符汇总 特殊字符 用途 . 匹配除换行符以外的任意单个 ...
- <构建之法>阅读笔记6
第九章:项目经理 是讲项目经理的作用功能和重要性,书里面主要讲的是微软的PM(Programe Manager)和其他团队PM(Project Manager)的区别,还介绍了PM的能力要求以及人物, ...