设为首页 收藏本站
查看: 594|回复: 0

[经验分享] C#中excel导入sql

[复制链接]

尚未签到

发表于 2016-11-12 07:18:55 | 显示全部楼层 |阅读模式
1、引入命名空间;
using Microsoft.Office.Interop.Excel;
2、操作函数;
public int ledinExcel(string file, object sender, EventArgs e)
{
//try
//{
System.Data.DataTable dt = xsldata(file);
int errorcount = 0;
int insertcount = 0;
//int updatecount = 0;
//string strcon = "server=ROCKEN;database=checkatt;uid=sa;pwd=000123";
//SqlConnection conn = new SqlConnection(strcon);
//conn.Open();
for (int i = 0; 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,50),
new SqlParameter("@Work_att", SqlDbType.Date),
new SqlParameter("@Work_lable",  SqlDbType.NVarChar,50),
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[3].Precision = 0;
praexcel[4].Precision = 0;
praexcel[5].Precision = 0;
praexcel[6].Precision = 0;
praexcel[7].Precision = 0;
praexcel[8].Precision = 0;
praexcel[0].Value = dt.Rows[0];
praexcel[1].Value = dt.Rows[1].ToString();
praexcel[2].Value = Convert.ToDateTime(dt.Rows[2].ToString());
praexcel[3].Value = dt.Rows[3];
if (dt.Rows[4].ToString().Length == 0)
{
praexcel[4].Value = DBNull.Value;
}
else if (dt.Rows[4].ToString().Length > 5)
{
if (string.IsNullOrEmpty(dt.Rows[4].ToString().Trim()))
{
praexcel[4].Value = DBNull.Value;
}
else
{
praexcel[4].Value = dt.Rows[4].ToString().Trim();
}
}
else
{
praexcel[4].Value = dt.Rows[4];
}
//
if (dt.Rows[5].ToString().Length == 0)
{
praexcel[5].Value = DBNull.Value;
}
else if (dt.Rows[5].ToString().Length > 5)
{
if (string.IsNullOrEmpty(dt.Rows[5].ToString().Trim()))
{
praexcel[5].Value = DBNull.Value;
}
else
{
praexcel[5].Value = dt.Rows[5].ToString().Trim();
}
}
else
{
praexcel[5].Value = dt.Rows[5];
}
//
if (dt.Rows[6].ToString().Length == 0)
{
praexcel[6].Value = DBNull.Value;
}
else if (dt.Rows[6].ToString().Length > 5)
{
if (string.IsNullOrEmpty(dt.Rows[6].ToString().Trim()))
{
praexcel[6].Value = DBNull.Value;
}
else
{
praexcel[6].Value = dt.Rows[6].ToString().Trim();
}
}
else
{
praexcel[6].Value = dt.Rows[6];
}
//
if (dt.Rows[7].ToString().Length == 0)
{
praexcel[7].Value = DBNull.Value;
}
else if (dt.Rows[7].ToString().Length > 5)
{
if (string.IsNullOrEmpty(dt.Rows[7].ToString().Trim()))
{
praexcel[7].Value = DBNull.Value;
}
else
{
praexcel[7].Value = dt.Rows[7].ToString().Trim();
}
}
else
{
praexcel[7].Value = dt.Rows[7];
}
//
if (dt.Rows[8].ToString().Length == 0)
{
praexcel[8].Value = DBNull.Value;
}
else if (dt.Rows[8].ToString().Length > 5)
{
if (string.IsNullOrEmpty(dt.Rows[8].ToString().Trim()))
{
praexcel[8].Value = DBNull.Value;
}
else
{
praexcel[8].Value = dt.Rows[8].ToString().Trim();
}
}
else
{
praexcel[8].Value = dt.Rows[8];
}
//
if (dt.Rows[9].ToString().Length == 0)
{
praexcel[9].Value = DBNull.Value;
}
else if (dt.Rows[9].ToString().Length > 5)
{
if (string.IsNullOrEmpty(dt.Rows[9].ToString().Trim()))
{
praexcel[9].Value = DBNull.Value;
}
else
{
praexcel[9].Value = dt.Rows[9].ToString().Trim();
}
}
else
{
praexcel[9].Value = dt.Rows[9];
}
//if (dt.Rows[5].ToString().Length == 0) { praexcel[5].Value = DBNull.Value; } else { praexcel[5].Value = dt.Rows[5]; }
//if (dt.Rows[6].ToString().Length == 0) { praexcel[6].Value = DBNull.Value; } else { praexcel[6].Value = dt.Rows[6]; }
//if (dt.Rows[7].ToString().Length == 0) { praexcel[7].Value = DBNull.Value; } else { praexcel[7].Value = dt.Rows[7]; }
//if (dt.Rows[8].ToString().Length == 0) { praexcel[8].Value = DBNull.Value; } else { praexcel[8].Value = dt.Rows[8]; }
//if (dt.Rows[9].ToString().Length == 0) { praexcel[9].Value = DBNull.Value; } else { praexcel[9].Value = dt.Rows[9]; }
//praexcel[4].Value = dt.Rows[4];dt.Rows[9].ToString().Trim()
//praexcel[5].Value = dt.Rows[5];
//praexcel[6].Value = dt.Rows[6];
//praexcel[7].Value = dt.Rows[7];
//praexcel[8].Value = dt.Rows[8];
//praexcel[9].Value = dt.Rows[9];
//MessageBox.Show(dt.Rows[1].ToString() + dt.Rows[2].ToString());
try
{
if (SqlHelper.ExecuteNonQuery(CommandType.Text, strSql.ToString(), praexcel) > 0)
{

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;
//}
}

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-299057-1-1.html 上篇帖子: sql语言的艺术1 下篇帖子: [收藏]Matt Powell的《Server-Side 异步Web Methhods》
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表