using Microsoft.Office.Interop.Excel;

public int ledinExcel(string file, object sender, EventArgs e)
{
//try
//{
System.Data.DataTable dt = xsldata(file);
int errorcount = ;
int insertcount = ;
//int updatecount = 0; //string strcon = "server=ROCKEN;database=checkatt;uid=sa;pwd=000123";
//SqlConnection conn = new SqlConnection(strcon);
//conn.Open();
for (int i = ; i < dt.Rows.Count; i++)
{
StringBuilder strSql = new StringBuilder();
strSql.Append("insert into checkatt.DBO.att_table (Person_num,Per_name,Work_att,Up1,Off2,Up3,Off4,Up5,Off6)");
strSql.Append(" VALUES (@Person_num,@Per_name,@Work_att,@Up1,@Off2,@Up3,@Off4,@Up5,@Off6)");
SqlParameter[] praexcel = {
new SqlParameter("@Person_num", SqlDbType.Int),
new SqlParameter("@Per_name", SqlDbType.NVarChar,),
new SqlParameter("@Work_att", SqlDbType.Date),
new SqlParameter("@Work_lable", SqlDbType.NVarChar,),
new SqlParameter("@Up1", SqlDbType.Time),
new SqlParameter("@Off2", SqlDbType.Time),
new SqlParameter("@Up3", SqlDbType.Time),
new SqlParameter("@Off4", SqlDbType.Time),
new SqlParameter("@Up5", SqlDbType.Time),
new SqlParameter("@Off6", SqlDbType.Time)};
praexcel[].Precision = ;
praexcel[].Precision = ;
praexcel[].Precision = ;
praexcel[].Precision = ;
praexcel[].Precision = ;
praexcel[].Precision = ; praexcel[].Value = dt.Rows[i][];
praexcel[].Value = dt.Rows[i][].ToString();
praexcel[].Value = Convert.ToDateTime(dt.Rows[i][].ToString());
praexcel[].Value = dt.Rows[i][];
if (dt.Rows[i][].ToString().Length == )
{
praexcel[].Value = DBNull.Value;
}
else if (dt.Rows[i][].ToString().Length > )
{
if (string.IsNullOrEmpty(dt.Rows[i][].ToString().Trim()))
{
praexcel[].Value = DBNull.Value;
}
else
{
praexcel[].Value = dt.Rows[i][].ToString().Trim();
} }
else
{
praexcel[].Value = dt.Rows[i][];
}
//
if (dt.Rows[i][].ToString().Length == )
{
praexcel[].Value = DBNull.Value;
}
else if (dt.Rows[i][].ToString().Length > )
{
if (string.IsNullOrEmpty(dt.Rows[i][].ToString().Trim()))
{
praexcel[].Value = DBNull.Value;
}
else
{
praexcel[].Value = dt.Rows[i][].ToString().Trim();
}
}
else
{
praexcel[].Value = dt.Rows[i][];
}
//
if (dt.Rows[i][].ToString().Length == )
{
praexcel[].Value = DBNull.Value;
}
else if (dt.Rows[i][].ToString().Length > )
{
if (string.IsNullOrEmpty(dt.Rows[i][].ToString().Trim()))
{
praexcel[].Value = DBNull.Value;
}
else
{
praexcel[].Value = dt.Rows[i][].ToString().Trim();
}
}
else
{
praexcel[].Value = dt.Rows[i][];
}
//
if (dt.Rows[i][].ToString().Length == )
{
praexcel[].Value = DBNull.Value;
}
else if (dt.Rows[i][].ToString().Length > )
{
if (string.IsNullOrEmpty(dt.Rows[i][].ToString().Trim()))
{
praexcel[].Value = DBNull.Value;
}
else
{
praexcel[].Value = dt.Rows[i][].ToString().Trim();
}
}
else
{
praexcel[].Value = dt.Rows[i][];
}
//
if (dt.Rows[i][].ToString().Length == )
{
praexcel[].Value = DBNull.Value;
}
else if (dt.Rows[i][].ToString().Length > )
{
if (string.IsNullOrEmpty(dt.Rows[i][].ToString().Trim()))
{
praexcel[].Value = DBNull.Value;
}
else
{
praexcel[].Value = dt.Rows[i][].ToString().Trim();
}
}
else
{
praexcel[].Value = dt.Rows[i][];
}
//
if (dt.Rows[i][].ToString().Length == )
{
praexcel[].Value = DBNull.Value;
}
else if (dt.Rows[i][].ToString().Length > )
{
if (string.IsNullOrEmpty(dt.Rows[i][].ToString().Trim()))
{
praexcel[].Value = DBNull.Value;
}
else
{
praexcel[].Value = dt.Rows[i][].ToString().Trim();
}
}
else
{
praexcel[].Value = dt.Rows[i][];
}
//if (dt.Rows[i][5].ToString().Length == 0) { praexcel[5].Value = DBNull.Value; } else { praexcel[5].Value = dt.Rows[i][5]; }
//if (dt.Rows[i][6].ToString().Length == 0) { praexcel[6].Value = DBNull.Value; } else { praexcel[6].Value = dt.Rows[i][6]; }
//if (dt.Rows[i][7].ToString().Length == 0) { praexcel[7].Value = DBNull.Value; } else { praexcel[7].Value = dt.Rows[i][7]; }
//if (dt.Rows[i][8].ToString().Length == 0) { praexcel[8].Value = DBNull.Value; } else { praexcel[8].Value = dt.Rows[i][8]; }
//if (dt.Rows[i][9].ToString().Length == 0) { praexcel[9].Value = DBNull.Value; } else { praexcel[9].Value = dt.Rows[i][9]; }
//praexcel[4].Value = dt.Rows[i][4];dt.Rows[i][9].ToString().Trim()
//praexcel[5].Value = dt.Rows[i][5];
//praexcel[6].Value = dt.Rows[i][6];
//praexcel[7].Value = dt.Rows[i][7];
//praexcel[8].Value = dt.Rows[i][8];
//praexcel[9].Value = dt.Rows[i][9];
//MessageBox.Show(dt.Rows[i][1].ToString() + dt.Rows[i][2].ToString());
try
{
if (SqlHelper.ExecuteNonQuery(CommandType.Text, strSql.ToString(), praexcel) > )
{ insertcount++; }
else
{
errorcount++;
}
}
catch (Exception ex)
{
MessageBox.Show("导入成功:" + insertcount.ToString() + "条数据; 共" + dt.Rows.Count.ToString() + "条记录");
return insertcount;
}
}
MessageBox.Show("导入成功:"+insertcount.ToString()+"条数据; 失败"+errorcount.ToString());
return insertcount;
//}
//catch (Exception ex)
//{
//Console.Write(ex.Message);
// return insertcount;
//}
}

C#中excel导入sql的更多相关文章

  1. excel导入sql server 文本被截断,或者一个或多个字符在目标代码页中没有匹配项 错误处理

    excel导入sql server 文本被截断,或者一个或多个字符在目标代码页中没有匹配项 错误处理方法: 方案1:修改注册表 出现文本被截断的原因是SQL Server的导入导出为了确定数据表的字段 ...

  2. 把Excel导入SQL server时出现错误

    在把Excel导入SQL server时出现“未在本地计算机上注册 Microsoft.ACE.OLEDB.12.0 ”该 错误信息:未在本地计算机上注册“microsoft.ACE.oledb.12 ...

  3. 转:Excel导入SQL数据库完整代码

    Excel导入SQL数据库完整代码 protected void studentload_Click(object sender, EventArgs e) {//批量添加学生信息 SqlConnec ...

  4. excel文档中数据导入sql server注意事项

    进来经常需要对一些基础数据进行更新,而业务方提供的数据源往往都是excel,所以经常需要将excel中数据导入到 数据库临时表,然后再进行处理. 在导入过程中,发现有些数据比如手机号码,如果默认导入, ...

  5. JeeSite中Excel导入导出

    在各种管理系统中,数据的导入导出是经常用到的功能,通常导入导出以Excel.CSV格式居多.如果是学习的过程中,最好是自己实现数据导入与导出的功能,然而在项目中,还是调用现成的功能比较好.近期一直使用 ...

  6. workbench中如何导入.sql文件

    在做电商管理系统的时候,需要使用 mysql 中的数据,在执行 app.js 文件时出现错误 于是将 mydb.sql 导入到workbench中,步骤如下: 1. 打开 workbench 软件,选 ...

  7. SQL语句:把Excel文件中数据导入SQL数据库中的方法

    1.从Excel文件中,导入数据到SQL数据库情况一.如果接受数据导入的表不存在 select * into jd$ from OPENROWSET('MICROSOFT.JET.OLEDB.4.0' ...

  8. Excel 导入 Sql Server出错——“文本被截断,或者一个或多个字符在目标代码页中没有匹配项”错误的解决

    有人说应该先转成Access, 再转到Sql Server. 其实用处并不大, 要截断的还是被截断了. 原因是,SQL Server的导入导出为了确定数据表的字段类型,取excel文件的前8行来判别. ...

  9. 将Excel导入SQL Server 只能导入数字,其他数据变为NULL怎么解决?

    先新建一个TXT文件,把数据粘贴进去 再新建一个Excel文件,在菜单栏中选Data再选From Text 找到txt文件,点import 一定要选Text 点Finish,点OK. 接下来在往数据库 ...

随机推荐

  1. AES加密解密

    AES简介 美国国家标准技术研究所在2001年发布了高级加密标准(AES).AES是一个对称分组密码算法,旨在取代DES成为广泛使用的标准. 根据使用的密码长度,AES最常见的有3种密钥方案,用以适应 ...

  2. 【读书笔记】iOS网络-异步请求与运行循环

    异步请求需要运行循环.当数据传递到服务器或是被客户端接收时,运行循环用于实现事件与委托对象之间的通信.异步请求在发出时,会在当前线程的运行循环上操作,这个实现细节是很重要的,因为在GCD块中或者是通过 ...

  3. 【问题排查】StringIndexOutOfBoundsException

    工作中遇到 java.lang.StringIndexOutOfBoundsException ,查看网上资料,总结如下 1.异常定义: Java API指出StringIndexOutOfBound ...

  4. ORA-00600: internal error code, arguments: [kcblasm_1], [103], [], [], [], [], [], []

    一ORACLE 10.2.0.5.0 标准版的数据库的告警日志出现ORA-00600错误,具体错误信息如下所示 Errors in file /u01/app/oracle/admin/SCM2/bd ...

  5. [MySQL Reference Manual] 7 备份和恢复

    7. 备份和恢复 本章主要会介绍: 1.备份的类型:逻辑备份,物理备份,全备和增量4种 2.创建备份的方法 3.还原方法,包括还原到时间点 4.备份计划,压缩和加密 5.表维护,恢复损坏的表 7. 备 ...

  6. C# 和 C++ 数据类型对照表

    又要用C#调用C++写好的api函数,为了方便,将网上的数据类型做个整理,方便以后查找,以后遇到需要的在进行查找 C++ C#             WORD ushort     DWORD ui ...

  7. DGbroker三种保护模式的切换

    1.三种保护模式 – Maximum protection 在Maximum protection下, 可以保证从库和主库数据完全一样,做到zero data loss.事务同时在主从两边提交完成,才 ...

  8. DNS 原理入门

    导读 DNS 是互联网核心协议之一.不管是上网浏览,还是编程开发,都需要了解一点它的知识.本文详细介绍DNS的原理,以及如何运用工具软件观察它的运作.我的目标是,读完此文后,你就能完全理解DNS. 一 ...

  9. android中BuildConfig.DEBUG的使用

    ADT(r17)中添加了一个新功能可以允许开发者只在Debug模式下允许某些代码.Build系统生成一个名称为BuildConfig的类,该类包含一个DEBUG 常量,该常量会根据您的Build类型自 ...

  10. 我懒蛋又回来了!-PDO

    hi 好几天了吧,脚伤都有一周了的.玩乐的这么久才发觉,对于年轻人,或者更具体的,对我而言,受伤最难受的不是受伤瞬间的身痛,不是随之而来的心理负担,不是独自一人远在他乡的孤独无助之感:最伤的是斗志,是 ...