//按钮触发事件
private void button1_Click(object sender, EventArgs e)
{
//调用subImportCsv_Dataset方法,传递文件的路径和文件名
subImportCsv_Dataset("C:\\data\\","AHU1_数据记录0.csv");
//调用csvToSql方法,传递文件的路径和文件名
csvToSql("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);
//查询语句
string strSQL = "select * from " + fileName;//文件名,不要带目录
//这边相当于把一个csv文件当做一张表格连接到后取得里面的所有数据
OdbcDataAdapter da = new OdbcDataAdapter(strSQL, objConn);
DataSet ds = new DataSet();
//将得到的数据填到DataSet对象中
da.Fill(ds);
}
private static bool csvToSql(string filePath, string fileName)
{
//定义数据库的连接字符串
string StrConn = "Data Source=.;AttachDbFilename=|DataDirectory|\\App_Data\\Database1.mdf;Integrated Security=True;User Instance=True";
//定义连接对象
SqlConnection connection = new SqlConnection(StrConn);
try
{
//打开数据库连接对象
connection.Open();
//SQL语句字符串 大致的意思是将文件中的数据插入到名为Table的表中,用‘,’作为分隔符
string cmdtxt = @"bulk insert Table from '" + filePath + fileName + "' with(FIRE_TRIGGERS,FIELDTERMINATOR=',')";
//定义SqlCommand对象
SqlCommand cmd = new SqlCommand(cmdtxt, connection);
//执行语句
cmd.ExecuteNonQuery();
//执行成功返回true
return true;
}
catch (System.Exception ex)
{
//执行错误的话返回false
// log.WriteLine("文件:{0} error:{1}", fileName, ex.Message);
// log.Flush();
return false;
}
}
大致的意思是点下按钮将数据文件转到DataSet中并且保存到数据库中的Table表里面返回是否成功
subImportCsv_Dataset:根据文件路径建立连接并获取文件内容填充至DataSet中。
csvToSql:建立数据库连接并执行SQL语句,返回执行成功与否