C#怎么将CSV内容导入到SQL数据库中
private void button1_Click(object sender, EventArgs e)
{
subImportCsv_Dataset("C:\\data\", "AHU1_数据记录0.csv");
}
public void subImportCsv_Dataset(string filePath, string fileName)
{
string strConn = @"Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq=";
strConn += filePath;//这个地方只需要目录就可以了
strConn += ";Extensions=asc,csv,tab,txt;";
OdbcConnection objConn = new OdbcConnection(strConn);
try
{
string strSQL = "select * from " + fileName;//文件名,不要带目录
OdbcDataAdapter da = new OdbcDataAdapter(strSQL, objConn);
DataSet ds = new DataSet();
da.Fill(ds);
}
catch (Exception ex)
{
throw ex;
}
}
#region csv文件操作
public static DataSet dataset_csv(string sql,string fileurl)
{
OleDbConnection oleconn = new OleDbConnection();
OleDbCommand olecmd = new OleDbCommand();
OleDbDataAdapter oleadp;
DataSet csvdataset;
oleconn.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+fileurl+";Extended Properties='Text;FMT=Delimited;HDR=YES;'";
using (oleadp = new OleDbDataAdapter(sql, oleconn))
{
using (csvdataset = new DataSet("csv"))
{
oleadp.Fill(csvdataset, "csvtable");
return csvdataset;
}
}
olecmd.Dispose();
oleconn.Close();
}
#endregion
private static bool csvToSql(string fileName)
{
string StrConn = "server=.;database='" + DataBaseName + "';uid='" + userName + "';pwd='" + Password + "'";
SqlConnection connection = new SqlConnection(StrConn);
try
{
connection.Open();
string cmdtxt = @"bulk insert " + TableName + " from '" + FilePath + fileName + "' with(FIRE_TRIGGERS,FIELDTERMINATOR=',')";
SqlCommand cmd = new SqlCommand(cmdtxt, connection);
cmd.ExecuteNonQuery();
return true;
}
catch (System.Exception ex)
{
// log.WriteLine("文件:{0} error:{1}", fileName, ex.Message);
// log.Flush();
return false;
}
}
public DataSet subImportCsv_Dataset(string filePath, string fileName)
{
string strConn = @"Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq=";
strConn += filePath;//这个地方只需要目录就可以了
strConn += ";Extensions=asc,csv,tab,txt;";
OdbcConnection objConn = new OdbcConnection(strConn);
try
{
string strSQL = "select * from " + fileName;//文件名,不要带目录
OdbcDataAdapter da = new OdbcDataAdapter(strSQL, objConn);
DataSet ds = new DataSet();
da.Fill(ds);
return ds;
}
catch (Exception ex)
{
throw ex;
return null;
}
}
public int UpdateResult(DataSet ds)
{
int icount=0;
SqlConnection con = new SqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename=
[解决办法]
DataDirectory
[解决办法]
\\Database1.mdf;Integrated Security=True;User Instance=True");
con.Open();
SqlCommand cmd = new SqlCommand(sql, con);
SqlParameter p = new SqlParameter("@VarName", SqlDbType.NVarChar);
cmd.Parameters.Add(p);
p = new SqlParameter("@TimeString", SqlDbType.NVarChar);
cmd.Parameters.Add(p);
p = new SqlParameter("@VarValue", SqlDbType.NVarChar);
cmd.Parameters.Add(p);
p = new SqlParameter("@Validity", SqlDbType.NVarChar);
cmd.Parameters.Add(p);
p = new SqlParameter("@Time_ms", SqlDbType.NVarChar);
cmd.Parameters.Add(p);
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
cmd.Parameters["@VarName"].Value = ds.Tables[0].Rows[i]["VarName"].ToString();
cmd.Parameters["@TimeString"].Value = ds.Tables[0].Rows[i]["TimeString"].ToString();
cmd.Parameters["@VarValue"].Value = ds.Tables[0].Rows[i]["VarValue"].ToString();
cmd.Parameters["@Validity"].Value = ds.Tables[0].Rows[i]["Validity"].ToString();
cmd.Parameters["@Time_ms"].Value = ds.Tables[0].Rows[i]["Time_ms"].ToString();
conn.Open();
if(cmd.ExecuteNonQuery()>0)
icount++; cmd.Close();
}