工作中的碰到的問題,以及處理過程

2022-01-17 02:31:29 字數 2430 閱讀 9195

工作中的碰到的問題,以及處理過程:

問題:1.讀取excel檔案中資料並放到datatable中;

2.快速找出datatable中的重複行;

3.比較excel檔案中重複行時遇到的問題;

4.對「i++」和「i++」的重新認識;

5.嘗試利用sqlbulkcopy 來插入資料;

解析: 

對於第1條,我是從網上找的,發現網上98%都是採用oledb方式實現,我稍微改造了一下,

**如下:

**#region

從excel中讀取資料

//////

從excel中讀取資料

//////

excel路徑

///datatable

public

static

datatable importtable(

string

excelpath)

);//

包含excel中表名的字串陣列

string

strtablenames 

=new

string

[dtsheetname.rows.count];

for(

intk =0

; k 

<

dtsheetname.rows.count; k++)

conn.close();

oledbdataadapter mycommand 

=null

;string

strexcel ="

select * from ["+

strtablenames[0] 

+"a:r]";

mycommand 

=new

oledbdataadapter(strexcel, connstr);

mycommand.fill(mydt);

return

mydt;

}#endregion

對於第二條,為了提高效能,我是這樣實現的,每次遍歷時只跟它後面的資料比較,因為它前面的資料已經跟它比較過了,沒必要它再跟前面的資料比較 

**#region

比較datatable中的資料行是不是重複

//////

比較datatable中的資料行是不是重複

//////

///public

static

arraylist arrcfdata(datatable exceldt)

行和第行資料重複

", x, y);

arruserdata.add(ret);}} 

+ "出來吧" + dtcompinfo.rows[i][3].tostring()); }}

}catch

(exception ex)

finally

return

arruserdata;

}#endregion

對於第3條:在查詢excel資料中重複行

**if

(dtcompinfo.rows[i][

0].equals(dtcompinfo.rows[j][

0]) 

&&dtcompinfo.rows[i][

3].equals(dtcompinfo.rows[j][

3])) 

行和第行資料重複

",x, y);

break; }

對於第四條:因為老闆要知道excel資料中到底哪些行重複了,所以一旦找到後需要記錄這兩行的索引,我這讀出來的資料跟excel資料實際對應的行數差兩行,所以要在程式中讀到的行索引基礎上在加2

**if

(dtcompinfo.rows[i][

0].tostring().equals(dtcompinfo.rows[j][

0].tostring()) 

&&dtcompinfo.rows[i][

3].tostring().equals(dtcompinfo.rows[j][

3].tostring()

行和第行資料重複",i

+2, j+2);

break

; } 

對於第五條:沒啥好說的就是用sqlbulkcopy 來實現插入

**#region

資料批量匯入資料庫

//////

資料批量匯入資料庫

//////

需要匯入的資料

///對應資料庫中的表名

public

static

void

exportdate(datatable dt,

string

tablename)

}catch

(exception ex)

finally}}

#endregion

C 工作中碰到的一些問題,以及解決的辦法

工作已三年時間,一直都是在 使用c 程式設計,對c 也算是有一些了解,下面是自己碰到的一些c 的問題,以及當時的解決辦法。1 在動態庫中匯出的類中的資源檔案無法正常使用 解決辦法 在呼叫動態庫中的資源時,需要切換資源控制代碼。2 在程式中 呼叫某些動態庫中的 匯出函式,或者匯出類時,提示鏈結錯誤 解...

關於在工作中遇到沒處理過的問題,如何尋找解決方案

有感於和同事的一次的處理經歷 最近公司有個專案需要處理熱插拔的東西,首先想到的是是否已經有已有的方案,在gdk上面找到了已經有的方案,知道glib的庫裡面有相關的解決方式,但是對於gtk的一套東西確實語法不太熟悉,沒有繼續追蹤下去,後來另外找了乙個可以直接呼叫的庫,然後應用到專案中後,發現對於該庫的...

工作中碰到的一些問題小結

解決措施 在某些作業系統上,當啟動資料庫或者建立資料庫時都可能出現ora 27125錯誤,在linux 6上安裝oracle 10.2.0.1,建立資料庫時就遇到了這個錯誤。這個錯誤的解決就是修改 proc sys vm hugetlb shm group 檔案。oracle文件上關於ora 271...