如何讀取CSV檔案到DataTable中,然後存到資料庫
public void FileToDB() { string line = "";//將檔案中的一行資料讀出,賦值給line int i = 0;//計數檔案中的行數 int linenumber = 0;//檔案中的總行數 string sql = "select top 1 * from 表";//從資料庫讀取某一張表,主要是為了獲取表的結構 DataSet dt = DataSelectMyTest(sql, "table");//執行sql語句,返回DataSet dt.Clear();//清空資料 string fileName = @"csv檔案的絕對路徑"; FileStream fs = new FileStream(fileName, FileMode.Open); System.Text.Encoding iso_8859_1 = System.Text.Encoding.GetEncoding("iso-8859-1");//西歐語言裡的iso 8859-1 StreamReader m_streamReader = new StreamReader(fs, iso_8859_1); linenumber = m_streamReader.ReadToEnd().Split('\n').Length; //Console.WriteLine("檔案一共有{0}行!",linenumber); fs.Seek(0, SeekOrigin.Begin);//迴轉到檔案開頭 DataTable Table = new DataTable("table"); while (((line = m_streamReader.ReadLine()) != null)) {
i++; if (i == 1)//第一行是列名 { string[] str = CutComma(line);//去除列名之間的所有空格 for (int k = 0; k < str.Length; k++) { str[k] = CutSpace(str[k]);//去除列名中的空格 DataColumn Column = new DataColumn(); Column.DataType = System.Type.GetType("System.String"); Column.ColumnName = str[k].ToString(); Table.Columns.Add(Column); } } if (i <= linenumber - 1 && i > 1)//(檔案的第一行就是列名,檔案結尾多出來一行空白的) { int i1 = 0; string str = ""; DataRow temprow = Table.NewRow(); bool flag = true; for (int j = 0; j < line.Length; j++) { if (flag == true) { if (line[j] == '\"') { flag = false; continue; } else if (line[j] != ',') { str = str + line[j]; if (j == line.Length - 1) { temprow[i1] = str;//最後一列不為空的時候 } } else if (line[j] == ',' && line[j - 1] != '\"') { //賦值 temprow[i1] = str; str = ""; i1 = i1 + 1; if (j == line.Length - 1) { temprow[i1] = str;//最後一列為空的時候 } } } else { if (line[j] != '\"') { str = str + line[j]; } else { flag = true; //賦值 temprow[i1] = str; str = ""; i1 = i1 + 1; continue; } } } Table.Rows.Add(temprow); } } }
string strConnection = "資料庫的配置"; SqlConnection conn = new SqlConnection(strConnection); SqlBulkCopy bcp = new SqlBulkCopy(conn); conn.Open(); bcp.DestinationTableName = "資料庫中對應的表"; bcp.WriteToServer(dt.Tables["table"]); //把資料寫入到一張表中 conn.Close(); dt.Clear(); }
//程式碼還可以進一步的優化,比如,有可能資料庫中的表結構,和CSV中的並不對應,屆時,就需要自己對列進行一一對應了
//需要注意的是csv檔案的編碼,以及使用那個notepad++開啟檔案,列與列之間怎麼分隔開的
//在資料庫配置之前,需要把之前建立的Table放到dt中名為"table"的表中,
相關推薦
如何讀取CSV檔案到DataTable中,然後存到資料庫
public void FileToDB() { string line = "";//將檔案中的一行資料讀出,賦值給line int i = 0;//計數檔案中的行數 i
SequenceInputStream表示其他輸入流的邏輯級聯。 它從一個有序的輸入流集合開始,從第一個讀取到檔案的結尾,然後從第二個檔案讀取,依此類推,直到最後一個輸入流達到檔案的結尾。
三個檔案的級聯。。 package cn.ketang.yanlian; import java.io.BufferedInputStream; import java.io.BufferedO
Java讀取csv檔案並將內容插入到資料庫
Java讀取csv檔案, 並使用jdbc將內容插入到資料庫, 插入資料庫的類可以在另一篇文章中檢視, 有一個公共的csv操作jar包,本文未使用 <dependency> <grou
EXCEL開啟csv檔案中文亂碼,以及匯入資料庫中文亂碼
1.將csv檔案用notepad++開啟,選擇encoding列表,選擇encode in UTF-8-BOM編碼方式,點集儲存,再次用EXCEL開啟就可以正常顯示 2.將上述的csv檔案匯入SQL中,選址65001(UTF—8)編碼方式,並在高階那一項將帶有中文的那一列的
讀取csv檔案,1min k線輸出到csv檔案中,計算5s,10s,20s移動平均值
參考: C字串轉換為int,float https://blog.csdn.net/li6727975/article/details/42875641 結構體 http://www.runoob.com/cprogramming/c-structures.htm
20.獲取網路圖片,將圖片儲存在檔案,快取中,然後先從快取中讀取,沒有再從檔案中讀取
實現的功能主要是標題,那麼接下來我們就分析,如何一步一步的實現這個功能 第一步:建立imgCache資料夾,在裡面建立如下幾個檔案 1.ImgLoaderCallback:用於重新整理ImageView 2.ImageManager:用於管理快取圖片,比如圖片的讀取,還有
如何用java讀取csv檔案指定行列的資料,並將csv中資料元素隨機置零後儲存到另一個csv檔案中
這個流程可以大致分為兩步驟:1.讀取csv檔案中的資料2.生成隨機數,將csv的資料隨機置零,將新生成的檔案儲存到新的csv中一、首先我們進行第一步:讀取csv中的檔案:讀取函式格式為public static double readin(int row,int col)
改良昨天的指令碼,讀取CSV檔案生成散點圖
需要讀取的CSV檔案,資料參考以下表頭順序 讀取成功後生成散點圖檔案 “散點圖.html" 開啟網頁檔案時,同目錄下需要有 echarts.min.js 散點圖效果: 程式碼如下: # -*- coding: utf-8 -*- """ 讀取cs
spark1.6.1讀取csv檔案,轉為為DataFrame和使用SQL
一、讀取csv spark2.0才開始原始碼支援CSV,所以1.6版本需要藉助第三方包來實現讀取CSV檔案,有好幾種方法, 1.如果有maven的,到https://spark-packages.org/package/databricks/spark-csv下載對應scala版本的第三方j
Unity3D中讀取CSV檔案
轉自 https://www.cnblogs.com/lyh916/p/8588218.html 參考連結: https://www.cnblogs.com/lulianqi/p/6385503.html http://blog.csdn.net/paul342/article/det
python讀txt檔案讀資料,然後修改資料,再以矩陣形式儲存在檔案中
import os os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' # -*- coding: UTF-8 -*- import numpy as np import glob import tensorflow as tf flag=T
Python中pandas讀取*.csv檔案出現編碼問題
1、問題 在使用Python中pandas讀取csv檔案時,由於檔案編碼格式出現以下問題: Traceback (most recent call last): File "pandas\_libs\parsers.pyx", line 1134, in pandas
Pandas Python讀取CSV檔案中的某一列
本人菜鳥一枚,剛剛接觸Python,也不是專門研究Python的,但是在處理資料的時候需要用到,就簡單的記錄一下的自己學習。 1.首先就是讀取csv檔案 address=pd.read_csv("C:/..../檔名",usecols=[2]) #括號中第一個引數是讀取
Win7,64位下Python 讀取csv檔案(Excel轉化的)並繪製圖表
參考程式碼: 依賴的包: 1.matplot 2.numpy Python 讀取csv檔案(Excel轉化的)並繪製圖表。 程式碼如下: from __future__ import print_function from matplotlib import mla
opencsv方式讀取csv檔案,詳解,示例
1.opencsv官網:http://opencsv.sourceforge.net/ jar包:opencsv-2.3.jar 2.讀取CSV檔案 package com.szaisino.common.opencsv; import java.io.File
iOS開發中讀取csv檔案
首先將csv檔案拖入到工程中 使用下面程式碼讀取檔案: -(void)readCSVData{ NSString *path = [[NSBundlemainBundle] pathForR
R語言 : 讀取csv 檔案, 畫基金淨值線
資料檔案 66001.txt 內容格式: date1,jz0,jz1,jz2,jz3,jz4,jz5 2017-09-01,1.0202,1.6531,2.4647,1.1081,NA,2.9068 2017-09-04,1.0134,1.6621,2.4576,1.108
C++讀取CSV檔案,並將逗號分隔符檔案分割成N個數組
#include <stdio.h> #include <string.h> // #include <windows.h> #define MAXLINE 256 struct student { char stuName[10
pd.read_csv無法正常讀取csv檔案,顯示UnicodeDecodeError
在mac的python3環境下,用pd.read_csv讀取csv檔案時,一直報錯 UnicodeDecodeError: 'utf-8' codec can't decode byte 0x82 in position 743: invalid start byte 在
shell指令碼檔案重定向讀取.csv檔案,輸出SQL Insert語句
檔案重定向常見於指令碼需要讀入檔案和輸出檔案時。這個樣例指令碼兩件事都做了。它讀取.csv 格式的資料檔案,輸出SQL INSERT語句來將資料插入資料庫。 shell指令碼使用命令列引數指定待讀取的.csv檔案。.csv格式用於從電子表格中匯出資料,所以 你可以把資料庫資料放入電子表格中,把電子表