国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

SqlBulkCopy excel 字段映射解決辦法一 修改中間件datatable 的 ColumnName 使之 與 目標(biāo)表一致

2019-11-17 03:08:45
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

SqlBulkCopy Excel 字段映射解決辦法一 修改中間件datatable 的 ColumnName 使之 與 目標(biāo)表一致

利用SqlBulkCopy導(dǎo)入Excel數(shù)據(jù)庫(kù)

由于最近的項(xiàng)目需要大量的數(shù)據(jù)從Excel導(dǎo)入到SQLServer數(shù)據(jù)庫(kù)當(dāng)中,數(shù)據(jù)量非常大,綜合考濾了一下,采用SqlBulkCopy進(jìn)行數(shù)據(jù)的導(dǎo)入。

由于Excel表中的表頭,與數(shù)據(jù)庫(kù)中的字段是不一樣的,所以需要添加映射。之前在這個(gè)地方走了許多彎路。項(xiàng)目實(shí)際情況如下。

項(xiàng)目中內(nèi)容的呈現(xiàn)是用中文,而數(shù)據(jù)表頭是英文的。剛開(kāi)始時(shí)是直接從Excel表中讀出數(shù)據(jù),生成DataTable,添加自定義列(Excel中不存在姓名、用戶ID等),添加數(shù)據(jù)列表,然后直接修改DataTable的ColumnName,然后直接給SqlBulkCopy去更新到數(shù)據(jù)庫(kù)。結(jié)果出現(xiàn)錯(cuò)誤,無(wú)法從String類型轉(zhuǎn)到Int,由于通過(guò)修改ColumnName,兩張表的結(jié)構(gòu)是一致的,茫然了一陣。

通過(guò)分析,由于自己數(shù)據(jù)庫(kù)中的Id是自動(dòng)增長(zhǎng)的,而使用SqlBulkCopy時(shí)卻沒(méi)有沒(méi)有指定去映射相對(duì)應(yīng)的表頭,所以造成這個(gè)問(wèn)題。添加sqlBulkCopy.ColumnMappings即可解決。

結(jié)果導(dǎo)入成功后,卻發(fā)現(xiàn)有些數(shù)據(jù)是無(wú)法呈現(xiàn),從過(guò)查找,發(fā)現(xiàn)Excel表中的單元格出現(xiàn)錯(cuò)誤提醒“此單元格的數(shù)字為文本格式”。找了資料發(fā)現(xiàn)需要修改服務(wù)器的注冊(cè)表。相關(guān)的文章已經(jīng)發(fā)布。

只貼關(guān)鍵代碼

--------------------------------------

ccl:ColumnMappings映射

tablename:需更新的表名

dataTable:導(dǎo)入的數(shù)據(jù)表

publicstaticintSqlBulkCopyInsert(stringtablename,DataTabledataTable,Hashtableccl) { SqlBulkCopysqlBulkCopy=newSqlBulkCopy(T.getcs("")); foreach(stringstrinccl.Keys) { sqlBulkCopy.ColumnMappings.Add(str,ccl[str].ToString()); } sqlBulkCopy.DestinationTableName=tablename; if(dataTable!=null&&dataTable.Rows.Count!=0) { sqlBulkCopy.WriteToServer(dataTable); sqlBulkCopy.Close(); returndataTable.Rows.Count; } else { sqlBulkCopy.Close(); return0; }

}

--------------------------------------------


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 邻水| 和平区| 古交市| 阿拉善盟| 金溪县| 长沙县| 东海县| 凤城市| 湘潭县| 忻城县| 凉山| 武山县| 麻城市| 蒙城县| 慈溪市| 靖江市| 积石山| 陕西省| 阳信县| 偃师市| 元氏县| 石林| 信丰县| 枝江市| 柳河县| 合作市| 临沭县| 永胜县| 定边县| 沙湾县| 彭泽县| 萍乡市| 治县。| 庄浪县| 南川市| 汨罗市| 康乐县| 上高县| 马龙县| 德阳市| 齐齐哈尔市|