中易网

.net中excel导入sql 报错:未将对象引用设置到对象的实例

答案:5  悬赏:0  
解决时间 2021-03-06 12:49
iis运行asp.net网站时候,Excel导入SQL数据时候出现问题,读不出Excel的sheet内容,vs运行是没有错误的



最佳答案
计算机系统的问题
全部回答
我暂时保留我的看法!
log() { //string localFilePath, fileNameExt, newFileName, FilePath; SaveFileDialog saveFileDialog1 = new SaveFileDialog(); //设置文件类型 saveFileDialog1.Filter = " excel files(*.xls)|*.xls"; //设置默认文件类型显示顺序 saveFileDialog1.FilterIndex = 2; //保存对话框是否记忆上次打开的目录 saveFileDialog1.RestoreDirectory = true; //点了保存按钮进入 if (saveFileDialog1.ShowDialog() == DialogResult.OK) { DataTable dt=(DataTable)this.DataGridView.DataSource; TableToExcel(saveFileDialog1.FileName, dt, "test"); } } static public void TableToExcel(string excel, DataTable tb, string tbname) { try { OleDbConnection connex = GetConnFromExcel(excel); //获取到excel文件的oledb连接 string ct = "CREATE TABLE " + tbname + " ("; //以下生成一个sql命令向excel中插入一个表 foreach (DataColumn clmn in tb.Columns) { switch (clmn.DataType.Name) //根据不同数据类型分别处理 { case "Decimal": ct += clmn.ColumnName + " Decimal,"; break; case "Double": ct += clmn.ColumnName + " Double,"; break; default: ct += clmn.ColumnName + " string,"; break; } } ct = ct.Substring(0, ct.Length - 1) + ")"; OleDbCommand cmd1 = new OleDbCommand(ct, connex); cmd1.ExecuteNonQuery(); //向excel中插入一个表 foreach (DataRow r in tb.Rows) //下面向excel中一行一行写入数据 { string fs = "", vs = ""; foreach (DataColumn clmn in tb.Columns) { fs += clmn.ColumnName + ","; if (r[clmn.ColumnName] == DBNull.Value) { vs += "null,"; continue; } switch (clmn.DataType.Name) //根据不同数据类型分别处理 { case "Decimal": vs += ((decimal)r[clmn.ColumnName]).ToString("0.00") + ","; break; case "Double": vs += ((double)r[clmn.ColumnName]).ToString("0.00") + ","; break; case "DateTime": vs += "'" + ((DateTime)r[clmn.ColumnName]).ToShortDateString() + "',"; break; default: vs += "'" + r[clmn.ColumnName].ToString() + "',"; break; } } string sqlstr = "insert into [" + tbname + "$] (" + fs.Substring(0, fs.Length - 1) + ") values (" + vs.Substring(0, vs.Length - 1) + ")"; OleDbCommand cmd = new OleDbCommand(sqlstr, connex); cmd.ExecuteNonQuery(); //向excel中插入数据 } connex.Close(); } catch (Exception e) { throw new Exception(e.Message); } } static public OleDbConnection GetConnFromExcel(string ExcelFileName) { try { OleDbConnection connEX = new OleDbConnection(); connEX.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + ExcelFileName + ";Extended Properties=Excel 8.0"; //connEX.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + ExcelFileName + ";Extended Properties=""Excel 8.0;IMEX=1;"""; connEX.Open(); return connEX; } catch (Exception ex) { MessageBox.Show(ex.Message); return null; } } 另外,虚机团上产品团购,超级便宜
读不出Excel的sheet内容,vs运行是没有错误的 ---------------- 一般是因为你的excel某些字段列的数据格式和数据库对应表字段数据格式不匹配,可能会发生这样的问题。
这个错的范围太广了,你代码调试一下,错误就很容易找的。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
小区电梯房有老鼠怎么办?
易语言,超文本浏览框,怎么去掉那两个自动的
面试题:问为什么选择金融行业?
天下三我想玩个69HH额,想带全身战场装,首饰
岳阳市绿线管理办公室我想知道这个在什么地方
()然失色
索信DVD现在支持的是什么格式的电影?
龙腾商城一期小区我想知道这个在什么地方
以前打过一次孩子,现在怀孕困难怎么办啊
项羽不然,有功者害之,贤者疑之,此其所以失
建行账号不能被陆金所绑定 注册陆金所时,输
川盐连锁天全店在什么地方啊,我要过去处理事
Because of space satellites,the world itse
个人办理社保卡需哪些条件?
为什么我lol安装完了显示在安装中
推荐资讯
可可西里清吧地址在哪,我要去那里办事
X106/义亭公铁立交桥(路口)地址在哪,我要去
我女儿七个月大臀部上方皮里肉外起了一个长约
武汉世纪鑫盛消防工程有限公司地址在哪,我要
posalux钻床的落速,进给量有区别吗
货到付款宠物雨衣,有吗?
太阳能带漏电保护的电加热插头一插上就自动断
九江市谣家洼农行是什么支行遥家洼中国农业银
单人旁加个区的读音是什么
粤语歌曲,歌词里面有“习惯了,太多太多……
南京半岛孕味亲子摄影在什么地方啊,我要过去
城市银行卡在农村取款机上取款扣钱吗
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?