c# excel如何导入到sqlserver数据库
最近在做这个如何把excel导入到数据库中,经过多方查找,终于找到一个适合的,并且经过自己的完善可以正常使用(忘记原作者博客的链接地址了,敬请见谅)
- 首先是窗体的创建,文本框显示文件的路径,按钮执行操作,DataGridView显示导入的信息

代码如下:可根据自己的需求进行修改,我是要导入之后就对我的另一窗体进行刷新,定义了委托,你们可以忽略。
//定义委托
public delegate void Refresh(); //定义事件
public event Refresh myRefresh;
public ExcelRoprtForm()
{
InitializeComponent();
} private void button1_Click(object sender, EventArgs e)
{
//选中导入的文件
try
{
//openFileDialog1.Filter = "Excel 文件|*.xls";//指定存放文件格式类型
OpenFileDialog fd = new OpenFileDialog();
fd.Filter = "Excel文件(*.xls,xlsx)|*.xls;*.xlsx";
if (fd.ShowDialog() == DialogResult.OK)
{
string fileName = fd.FileName.ToString();
this.textBox1.Text = fileName;
} }
catch (Exception ee)
{
MessageBox.Show("打开文件出错!" + ee.Message.ToString());
}
} private DataSet xsldata(string filepath)
{
string strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filepath + ";Extended Properties='Excel 8.0;IMEX=1'"; //string strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " + filepath + ";Extended Properties='Excel 12.0; HDR=Yes; IMEX=1'"; System.Data.OleDb.OleDbConnection Conn = new System.Data.OleDb.OleDbConnection(strCon); string strCom = "SELECT * FROM [Sheet1$]"; Conn.Open(); System.Data.OleDb.OleDbDataAdapter myCommand = new System.Data.OleDb.OleDbDataAdapter(strCom, Conn); DataSet ds = new DataSet(); myCommand.Fill(ds, "[Sheet1$]");
dataGridView1.DataSource = ds.Tables[0];
Conn.Close();
return ds;
}
private void button2_Click(object sender, EventArgs e)
{
if (textBox1.Text == "")
{
MessageBox.Show("请选择要导入的Excel文档!", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
string filepath = textBox1.Text;
string strcon1 = ConfigurationManager.ConnectionStrings["connString"].ToString();
SqlConnection conn = new SqlConnection(strcon1);//链接数据库
conn.Open();
try
{
DataSet ds = new DataSet();
//取得数据集
//调用上面的函数
ds = xsldata(filepath);
int errorcount = 0;//记录错误信息条数 int insertcount = 0;//记录插入成功条数 int updatecount = 0;//记录更新信息条数 for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
string carnumber = ds.Tables[0].Rows[i][0].ToString();
int carstatus = Convert.ToInt32(ds.Tables[0].Rows[i][1].ToString());
int cartype = Convert.ToInt32(ds.Tables[0].Rows[i][2].ToString());
string carbrand = ds.Tables[0].Rows[i][3].ToString(); if (carnumber != "" && carstatus != 0 && cartype != 0)
{
SqlCommand selectcmd = new SqlCommand("select count(*) from CarInfo where CarNumber='" + carnumber + "'", conn); int count = Convert.ToInt32(selectcmd.ExecuteScalar());
if (count > 0)
{
updatecount++;
}
else
{
SqlCommand insertcmd = new SqlCommand("insert into CarInfo(CarNumber,CarStatusID,CarTypeID,CarBrand) values(" + "'" + carnumber + "'," + carstatus + "," + cartype + ",'" + carbrand + "'" + ")", conn); insertcmd.ExecuteNonQuery(); insertcount++; }
}
else
{
//MessageBox.Show("电子表格信息有错!");
errorcount++;
}
}
myRefresh();
MessageBox.Show(insertcount + "条数据导入成功!" + updatecount + "条数据重复!" + errorcount + "条数据部分信息为空没有导入!");
}
catch (Exception ex)
{ MessageBox.Show(ex.Message);
} finally
{
conn.Close(); }
}
c# excel如何导入到sqlserver数据库的更多相关文章
- EXCEL批量导入到Sqlserver数据库并进行两表间数据的批量修改
Excel 大量数据导入到sqlserver生成临时表并将临时表某字段的数据批量更新的原表中的某个字段 1:首先要对EXCEL进行处理 列名改成英文,不要有多余的列和行(通过ctrl+shift 左或 ...
- Excel 数据导入至Sqlserver 数据库中 ltrim() 、rtrim() 、replace() 函数 依次空格无效问题
今天导一些数据从Excel中至Sqlserver 数据库中,在做数据合并去重的时候发现,有两条数据一模一样,竟然没有进行合并: 最后发现有一条后面有个“空格”,正是因为这个“空格”让我抓狂许久,因为它 ...
- Npoi将excel数据导入到sqlserver数据库
/// <summary> /// 将excel导入到datatable /// </summary> /// <param name="filePath&qu ...
- NodeJs之EXCEL文件导入导出MongoDB数据库数据
NodeJs之EXCEL文件导入导出MongoDB数据库数据 一,介绍与需求 1.1,介绍 (1),node-xlsx : 基于Node.js解析excel文件数据及生成excel文件. (2),ex ...
- Silverlight将Excel导入到SQLserver数据库
最近纠结于读取Excel模板数据,将数据导入SQLServer的Silverlight实现,本文将实现代码贴出,作为一个简单的例子,方便各位: 1.先设计前台界面新建Silverlight5.0应用程 ...
- Excel表格数据导入到SQLServer数据库
转载:http://blog.csdn.net/lishuangzhe7047/article/details/8797416 步骤: 1,选择要插入的数据库--右键--任务--导入数据 2,点击下一 ...
- 将Excel文件数据导入到SqlServer数据库的三种方案
方案一: 通过OleDB方式获取Excel文件的数据,然后通过DataSet中转到SQL Server,这种方法的优点是非常的灵活,可以对Excel表中的各个单元格进行用户所需的操作. openFil ...
- 十万级百万级数据量的Excel文件导入并写入数据库
一.需求分析 最近接到一个需求,导入十万级,甚至可能百万数据量的记录了车辆黑名单的Excel文件,借此机会分析下编码过程; 首先将这个需求拆解,发现有三个比较复杂的问题: 问题一:Excel文件导入后 ...
- 批量将制定文件夹下的全部Excel文件导入微软SQL数据库
以下代码将c:\cs\文件夹下的全部Excle中数据导入到SQL数据库 declare @query vARCHAR(1000) declare @max1 int declare @count1 i ...
随机推荐
- 使用lua读文件并输出到stdin
io.input("c:\\AudioCom.log") t= io.read("*all") io.write(t) 三行代码搞定,简洁的不像话 io.rea ...
- <html> ---- position
position 固定的属性,是全局的.和DIV层次无关. <!DOCTYPE html> <html lang="en"> <head> &l ...
- C#递归遍历窗体所有textbox控件并设置textbox事件的方法
/// <summary> /// /// </summary> /// <param name="sender"></param> ...
- JODA-TIME获取本月的第一天及最后一天
1.获取当前时间: LocalDate now = LocalDate.now(); 2.本月第一天: LocalDate firstDayOfCurrentMouth = now.dayOfMont ...
- RNA-seq 数据文件处理
http://www.fungenomics.com/article/30 [专题]基因组学技术专题(二)-- 为什么说FPKM/RPKM是错的 下载数据 wget是linux下一个从网络上自动下载文 ...
- two pointers
two pointers是算法编程中一种非常重要的思想,但是很少会有教材单独拿出来将,其中一个原因是它更倾向于是一种编程技巧,而长得不太像是一个是“算法”的模样.two pointers的思想十分简介 ...
- String对象常量池特性对synchronized对象的影响
一 .什么是String的常量池特性 对于字符串对象有两种创建方法,如下: 直接赋值法: String str1="直接赋值创建字符串"; 创建对象法: String str2=n ...
- python中random模块的使用
import random random.random() 产生0-1间的随机小数 >>> res = random.random() >>> print(res) ...
- 安卓APP性能测试的一些方面
1. 启动速度 2. 点击/滑动等事件响应速度 3. 下载速度 4. 界面流畅程度,比较帧率 5. 耗电量测试 6. 流量测试 7. 内存泄漏 8. CPU 9. Monkey adb -s FJH5 ...
- PA教材提纲 TAW10-1
Unit1 SAP systems(SAP系统) 1.1 Explain the Key Capabilities of SAP NetWeaver(解释SAP NetWeaver的关键能力) Rep ...