从Excel导入SQL SERVER数据库
这次项目是一个经费管理系统,涉及的数据库记录数超出了以前做过的,每次最少都要从EXCEL导入数据库几千上万条数据,第一次使用一般的方法,执行SQL语句,运用for循环一条一条的插入,重复数据也使用程序判断,后来交付的时候出问题了,一次超过一定条数的记录,直接失败,这明显是效率的问题。从网络上找了一下,发现了一个从来没用过的类SqlBulkCopy 这里有详细的说明,我就不说了http://msdn.microsoft.com/zh-cn/library/system.data.sqlclient.sqlbulkcopy(VS.80).aspx
接着我使用这个方法导入数据
首先从EXCEL读取数据 到dataset
public DataSet GetXlsContent(string SheetName, string FileName)
{
tbDataBaseModel tbdbModel = new tbDataBaseModel();
DataSet ds = new DataSet();
//string Path = File.Replace(@"\\", @"\");
//string fromFile = FileName.Substring(FileName.LastIndexOf('\\') + 1);
try
{
string ExcelCmd = "";
string olestr = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + FileName + ";" + "Extended Properties=Excel 8.0;";
OleDbConnection ODC = new OleDbConnection(olestr);
ODC.Open();
OleDbDataAdapter odda = null;
 
相关文档:
进入sql*plus需要输入用户名、口令和主机标志符
system/manager
sys/change_on_intall
scott/tiger
internal/oracle
以上为初始密码
主机字符串空或者是@+你的服务名,在本地登陆不需要本地服务名。
下面就介绍一下一些常用的sql*plus命令:
首先查看当前使用的数据库实例:
select name from V$database;
切换两个 ......
--创建表TongXunLu
CREATE TABLE TongXunLu
(
[tName] nvarchar(30),
[tAddress] nvarchar(50),
[tEmail] varchar(50)
)
--创建表 students
CREATE TABLE students
(
[sId] int IDENTITY (1, 1) primary key NOT NULL ,
[sName] varchar (50) NOT ......
SQL中round()函数用法
SQL round()详解
round有两个重载,一个有带有两个参数的,一个是带有三个参数的,
每一个参数都相同是要处理的数,
1.带有两个参数.每二个参数是小数点的左边第几位或右边第几位,分别用正负表示.左边为负,右边为负.为四舍五入.
select round(748.585929,-1) 750.000000
select round(748.58592 ......
有关分页 SQL 的资料很多,有的使用存储过程,有的使用游标。本人不喜欢使用游标,我觉得它耗资、效率低;使用存储过程是个不错的选择,因为存储过程是经过预编译的,执行效率高,也更灵活。先看看单条 SQL 语句的分页 SQL 吧。
方法1:
适用于 SQL Server 2000/2005
SELECT TOP 页大小 *
from tab ......