(c#)Excel与SqlServer间数据相互导入
在数据库编程中,常会遇到要把数据库表信息导入Excel中, 有时则是把Excel内容导入数据库中。在这里,将介绍一种比较方便快捷的方式,也是比较普遍的。其实,这方法你并不陌生。原理很简单,把数据库表或Excel内容读取到dataset类型的变量中,再逐条插入到你想要导入的地方。不管是Excel转SqlServer,还是SqlServer转Excel,也是适用的。
其实,Excel的也可以用sql语句来操作的。说到这里,你也大概知道怎样做吧!接下来,通过一个实例来慢慢讲解。(该实例下载地址)
首先,提供该实例的数据库和表:
数据库名为:MyDataBase
表名为: CutClassTable
表创建语句如下:
use MyDataBase
go
Create Table CutClassTable(
StudentID varchar(20) Primary key,
Name varchar(20) not null,
CutClassSum int default(0),
Cause varchar(200) default('未知')
)
该实例运行图:
一.Excel 导入到 SqlServer
大概步骤:
a.用sql语句中“select * from [Sheet1$]”语句获取 Excel内容,存放到dataset类型变量中。
b.用insert 语句把dataset内容插入到SqlServer里面。
源代码如下:
using System.Data.SqlClient; //用于SqlServer数据库操作
using System.Data.OleDb; //用于Excel数据库操作
#region Excel导入到Sqlserver
//指定的Excel文件名
private string strFileName;
//是否已经获取到Excel文件的路径
private bool hasFile;
/
相关文档:
在root账号中,可以正常调用存储过程.
换到common_user账号时,同一存储过程名调用出现问题.
追踪调试时出现:
SELECT command denied to user 'common_user'@'localhost' for table 'proc'
搜索解决方案:
MySqlConnection myconnection = new MySqlConnection("server=localhost;user id=common_user; password=***;dat ......
在sqlserver2005下使用下面语句
WITH t AS (
SELECT ROW_NUMBER() OVER(ORDER BY id DESC) as row_number, id,ss
&nb ......
--语 句 功 能
--数据操作
SELECT --从数据库表中检索数据行和列
INSERT --向数据库表添加新数据行
DELETE --从数据库表中删除数据行
UPDATE --更新数据库表中的数据
--数据定义
CREATE TABLE --创建一个数据库 ......
SQL注入是什么?
许多网站程序在编写时,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。用户可以提交一段数据库查询代码(一般是在浏览器地址栏进行,通过正常的www端口访问),根据程序返回的结果,获得某些想得知的数据,这就是所谓的SQL Injection,即SQL注入。
网站的恶梦——SQL注入
......