[asp.net入门]利用ADO.NET处理数据的简单之处
由于项目需要,要往数据库中导入一些历史数据,而这些历史数据都是线下人工记录的,所以有很多不规范的地方,比如:同一个公司的名称在不同的记录中可能相差那么几个字,而且每条数据不是每个字段都是完整的,等等诸如此类的不规范问题。如何规范化,并且将这些若干excel表格的数据切分并且导入到数据库中的若干表中,并且这些表之间有着一对一或者一对多等关系,识别这些关系仅仅靠SQL是不行的,存储过程我也不了解,不知道能否满足需求。但是用c#加ADO.NET操作SQLServer还是很方便的,所以就决定使用C#。
下面列出一些比较常用的而且很方便的函数,还有一些常用的用c#操作数据库写法。
对于Excel表格,我直接将里面的数据copy到txt里面,这个过程中Excel表格一行中的每两个格子之间会自动添加制表符,然后利用c#的File类的静态方法一次性读取所有行:
string[] applycontract_origin = File.ReadAllLines("D:/1.txt");
这个用来读取文本再方便不过了,只需要一句话即可。
c#操作SQLServer的常用方法:
private static string connStr = "Server=127.0.0.1;database=test;UID=sa;PWD=123456";
private static SqlConnection conn = new SqlConnection(connStr);
首先当然要打开数据库连接:
conn.Open();
这是连接字符串和创建连接的代码,下面是选取数据的代码:
string selectLeaderCompany = @"select * from company_info";
SqlDataAdapter dataAdapter = new SqlDataAdapter(selectLeaderCompany, conn);
DataSet ds = new DataSet();
dataAdapter.Fill(ds);
return ds;
下面是插入数据的写法:
- string insertsql = "insert into tb_company_info (COMPANY_NM,REG_DATE) values('@name,getdate())" + ";select SCOPE_IDENTITY() as 'Identity'";
- SqlCommand insertCmd = new SqlCommand(insertsql, conn);
- SqlParameter p1 = new SqlParameter("@name", SqlDbType.VarChar,200);
- string name = "ssss";
- p1.Value = name;
- insertCmd.Parameters.Add(p1);
- string newid = insertCmd.
ExecuteScalar().ToString();
这里需要注意的是如果要获取插入数据的自增长ID,那么就要加入select SCOPE_IDENTITY(),获取自增长ID的方法有三种,要根据自己的需要选择合适的方法,SCOPE_IDENTITY、IDENT_CURRENT 和 @@IDENTITY都可以获取,具体区别在这里我就不细说了,网上相关资料很多。
如果不需要返回自增长ID,就如下执行:
insertCmd.ExecuteNonQuery();
删除和更新操作都和插入数据的写法一样,只需要更改sql语句即可。
对于选取数据的操作获取的DataSet,可以在程序里动态添加数据:
构造新的Row的时候如上述方法构造,不能使用构造函数,我觉得原因在于构造函数没法定义新行的列结构,而通过已经存在的Table构造新行就可以使用它的结构来初始化新行。
程序的最后别忘了关闭连接:
conn.Close();
如果想插入null数据,那么请使用:
p[7].Value = DBNull.Value;//p是sqlparameter类型的数组
对于:
private static SqlParameter amount = new SqlParameter("@amount", SqlDbType.Decimal);
private static SqlParameter amount = new SqlParameter("@amount", SqlDbType.Decimal);
上面的Decimal类型,可以如下设置精度:
amount.Precision = 18;
amount.Scale = 2;
这样一来,利用ADO.NET对数据库进行基本操作就总结完了。
[asp.net入门]利用ADO.NET处理数据的简单之处的更多相关文章
- 一个在ASP.NET中利用服务器控件GridView实现数据增删改查的例子
备注:这是我辅导的一个项目开发组的一个例子,用文章的方式分享出来,给更多的朋友参考.其实我们这几年的项目中,都不怎么使用服务器控件的形式了,而是更多的采用MVC这种开发模式.但是,如果项目的历史背景是 ...
- 利用ADO打开Access数据(64位系统)
64位的access一定要用64的程序才能正确打开,仍然用"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Test.accdb;Persist ...
- 【Asp.net入门3-05】处理JSON数据
- salesforce 零基础开发入门学习(八)数据分页简单制作
本篇介绍通过使用VF自带标签和Apex实现简单的数据翻页功能. 代码上来之前首先简单介绍一下本篇用到的主要知识: 1.ApexPages命名空间 此命名空间下的类用于VF的控制. 主要的类包括但不限于 ...
- nodejs利用superagent爬取数据的简单例子
爬取世界银行统计数据 安装:npm install superagent /** * Created by zh on 16-9-7. */ var request = require('supera ...
- ASP.NET MVC 入门8、ModelState与数据验证
原帖地址:http://www.cnblogs.com/QLeelulu/archive/2008/10/08/1305962.html ViewData有一个ModelState的属性,这是一个类型 ...
- 【转】asp.net中利用session对象传递、共享数据[session用法]
来自:http://blog.unvs.cn/archives/session-transfer-method.html 下面介绍Asp.net中利用session对象传递.共享数据用法: 1.传递值 ...
- ASP.NET MVC + EF 利用存储过程读取大数据,1亿数据测试很OK
看到本文的标题,相信你会忍不住进来看看! 没错,本文要讲的就是这个重量级的东西,这个不仅仅支持单表查询,更能支持连接查询, 加入一个表10W数据,另一个表也是10万数据,当你用linq建立一个连接查询 ...
- [转]ASP.NET MVC 入门8、ModelState与数据验证
ViewData有一个ModelState的属性,这是一个类型为ModelStateDictionary的ModelState类型的字典集合.在进行数据验证的时候这个属性是比较有用的.在使用Html. ...
随机推荐
- gzez某蒟蒻lyy的博客
在gz,想去sn幻想乡也行,现在高一并且是已经高二但仍然是机房最弱,没救了 愿诸位身体健康 水平不行,写出来的东西很sb,但还是会偶尔记录一下... 数学公式测试:$\binom n{n_1\cdot ...
- Codeforces Round #356 (Div. 2) B. Bear and Finding Criminal 水题
B. Bear and Finding Criminals 题目连接: http://www.codeforces.com/contest/680/problem/B Description Ther ...
- SnackDown Longest Increasing Subsequences 构造题
Longest Increasing Subsequences 题目连接: https://www.codechef.com/SNCKPA16/problems/MAKELIS Description ...
- ZeptoLab Code Rush 2015 B. Om Nom and Dark Park DFS
B. Om Nom and Dark Park Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/5 ...
- Windows下ftp服务器搭建及配置
Win系统使用ser-u软件进行FTP服务器的搭建下载地址:https://www.serv-u.com/操作步骤如下:1. 点击执行程序进行按照SU-FTP-Server-Windows-v15.1 ...
- Qt 编译boost
Qt为4.6.2.Boost为1.63.0. 1.安装qt-sdk-win-opensource-2010.02.1.exe. 2.下载boost_1_63_0并解压,如:解压到E盘根目录下. 3.在 ...
- Pyhton 编程风格
博文概要:1.Python语句和语法2.Python标识符3.基本编程风格 一.Python语句和语法 1.可以从一行的任何地方开始2.续行 \: ''':闭合操作符,单一语句跨多行 3.代码组 .缩 ...
- [置顶] 解决EXTJS文本框长度验证在ORACLE数据库下不正确的问题
由于ORACLE数据库里面一个汉字和符号占2 个字节,数字和英文占1个字节,所以用EXTJS的文本框MaxLenght去限制输入的长度是不正确的,因为EXTJS只限制了输入的字数量,而不是字节数量. ...
- __attribute__ ((attribute-list))
http://blog.csdn.net/ithomer/article/details/6566739 构造与析构: #include <stdio.h> #include <st ...
- systemtap 用户态调试2
[root@localhost ~]# cat user.stpprobe process(@1).function(@2){print_ubacktrace();exit();} session 1 ...