一段用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[0];}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"] = 1;row["Name"] = "ItemA";row["ValueA"] = 20;dt.Rows.Add(row);row = dt.NewRow();row["Id"] = 67;row["Name"] = "ItemC";row["ValueA"] = 90;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 = 0;int.TryParse(memoryArr[0]["ValueA"].ToString(), out valueA);//将内存表中Name=ItemC的ValueA更新到数据表中 Update(valueA, nameValue);//将数据库中的ValueB数据栏及其对应的值添加到内存表中DataTable dbTable = GetTableFromDatabase();if (dbTable != null && dbTable.Rows.Count > 0){//遍历数据表中的记录foreach (DataRow dr in dbTable.Rows){DataRow[] tempDR = memoryTable.Select("Name='" + dr["Name"] + "'");if (tempDR.Length > 0){tempDR[0]["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);}}}}} }
转载于:https://www.cnblogs.com/subendong/p/10448216.html
一段用c#操作datatable的代码相关推荐
- C#和C常用的API操作窗口的代码积累
C#和C常用的API操作窗口的代码积累 IntPtr awin = MouseHookHelper.FindWindow("WeChatMainWndForPC", "微 ...
- mysqlierror php_php操作mysqli(示例代码)
php操作mysqli(示例代码) 更新时间:2013年10月28日 08:56:20 作者: php操作mysqli的示例代码.需要的朋友可以过来参考下,希望对大家有所帮助 define(&qu ...
- android中屏保功能项目,【Android】一段时间不操作弹出【屏保】效果
仿屏保效果 最近项目的一个小Demo,和大家分享一下,本篇文章主要展示的是一个仿屏保的效果,用户在一段时间不操作会自动弹出屏保页面,当处于屏保页面的时候,[两秒内连续]按两次键盘[回车键]就会退出屏保 ...
- 详细介绍了Linux下配置文件的读取方法及fgyhtrh读取操作的C代码实现
认识指针数组和数组指针从内存方面分析 Linux具有免费.可靠.安全.稳定.多平台等特点,因此深受广大程序员的欢迎. 为了体现软件产品的灵活性,可添加配置文件存放某些重要的参数,在部署的时候根据实际 ...
- 30 个 php 操作 redis 常用方法代码例子
这篇文章主要介绍了 30 个 php 操作 redis 常用方法代码例子 , 本文其实不止 30 个方法 , 可以操作 string 类 型. list 类型和 set 类型的数据 , 需要的朋友可以 ...
- C#--动态操作DataTable
C#动态操作DataTable(新增行.列.查询行.列等) 方法一:动态创建一个DataTable ,并为其添加数据 public void CreateTable() { ...
- MYSQL连接一段时间不操作后出现异常的解决方案
MYSQL连接一段时间不操作后出现异常的解决方案 参考文章: (1)MYSQL连接一段时间不操作后出现异常的解决方案 (2)https://www.cnblogs.com/bokejiayuan/p/ ...
- 百度搜索引擎提供了一段嵌入到页面中的代码
百度搜索引擎提供了一段嵌入到页面中的代码 <form action="http://www.baidu.com/baidu" target="_blank" ...
- 一段动态生成表格的JSP代码讲解
一段动态生成表格的JSP代码讲解 <table border="1" width="600px" align="center"> ...
最新文章
- Artificial Intelligence and Change Management
- linux下面tomcat域名配置
- xampp运行php中文乱码,dvwa+xampp搭建显示乱码的问题及解决方案
- Javascript和android原生互调
- java数组变量_关于java 的数组引用变量
- 降准对房价与股市的影响!
- Windows Server 2008 R2 企业版操作说明手册
- 一个开源的网页画板,真的太方便了
- 巨建华担任BCF理事
- 阿里云服务器购买后如何做好安全防护?
- 《基于短时分数阶傅里叶变换的时频分析方法》
- 无盘系统服务器虚拟内存,Windows7无盘虚拟内存如何设置
- 入门了解开发板是做什么用的?
- PCIe系列专题之二:2.8 事务排序机制
- LeanCloud 一至二月变化
- HCL实验-使用ACL进行SSH服务器的登录源限制的简单实验(NAT+SSH+ACL)
- 9个免费开源的bug追踪软件
- Python的format用法详解
- 苹果笔记本设置MAC地址和ip地址
- ModuleNotFoundError: No module named ‘sklearn.__check_build._check_build‘解决方案