C#实现Excel导入数据到SQL的功能中关于小数的问题
近日,要在c#中实现Excel导入数据到sql数据库的功能,已实现可以导入,只是其中的小数,总是会减少,比如Excel中数据是2.010,导入到数据库中之后就会变成2.009 这样,请问有谁知道是什么原因吗?在导入之前已经把Excel中的这列小数设置成文本格式了。
导入之前的数据:

导入之后的数据:

导入数据的功能是这样实现的,先把Excel中的数据读取到DataTable中,然后用sbc的插入到数据库中
代码分别如下:
导入之前的数据:

导入之后的数据:

导入数据的功能是这样实现的,先把Excel中的数据读取到DataTable中,然后用sbc的插入到数据库中
代码分别如下:
/// <summary>
/// Excel导入数据源
/// </summary>
/// <param name="sheet">sheet</param>
/// <param name="filename">文件路径</param>
/// <returns></returns>
public static DataTable ExcelToDataSet(string sheet, string filename)
{
try
{
DataSet ds;
OleDbConnection myConn = new OleDbConnection(ConnectionString(filename));
string strCom = " SELECT * FROM [" + sheet + "$]";
myConn.Open();
OleDbDataAdapter myCommand = new OleDbDataAdapter(strCom, myConn);
ds = new DataSet();
myCommand.Fill(ds);
myConn.Close();
DataTable dt = ds.Tables[0];
dt.TableName = sheet;
return dt;
}
catch (Exception ex)
{
Logger.WriteLog("-----------Excel导入数据异常-----------\r\n" + ex.ToString() + "\r\n");
return null;
}
}
/// <summary>
///大批量数据插入
/// </summary>
/// <param name="table">数据表</param>
/// <param name="connectionString">数据库连接字符串</param>
/// <returns></returns>
public bool SqlServerBulkInsert(DataTable table, string connectionString)
{
try
{
using (SqlConnection conn = new SqlConnection(connectionString))
{
conn.Open();
SqlTransaction trans = conn.BeginTransaction();
SqlBulkCopy sqlbulkCopy = new SqlBulkCopy(conn, SqlBulkCopyOptions.Default, trans);
// 设置源表名称
sqlbulkCopy.DestinationTableName = table.TableName;
//分几次拷贝
//sqlbulkCopy.BatchSize = 10;
// 设置超时限制
sqlbulkCopy.BulkCopyTimeout = CommandTimeOut;
foreach (DataColumn dtColumn in table.Columns)
{
sqlbulkCopy.ColumnMappings.Add(dtColumn.ColumnName, dtColumn.ColumnName);
}
try
{
// 写入
sqlbulkCopy.WriteToServer(table);
// 提交事务
trans.Commit();
return true;
}
catch
{
trans.Rollback();
sqlbulkCopy.Close();
return false;
}
finally
{
conn.Close();
conn.Dispose();
sqlbulkCopy.Close();
}
}
}
catch (Exception e)
{
DbLog.WriteException(e);
return false;
}
}
...全文
相关推荐
Sql数据与Excel数据的导入和导出
使用c#语句实现Sql数据与Excel数据的导入和导出
C#实现excel文档中数据导入(mysql、sql)
利用window窗体程序,把excel文件放入到datagridview控件中,然后foreach插入表中
C#实现Excel表数据导入Sql Server数据库中的方法
本文实例讲述了C#实现Excel表数据导入Sql Server数据库中的方法。分享给大家供大家参考,具体如下: Excel表数据导入Sql Server数据库的方法很多,这里只是介绍了其中一种: 1、首先,我们要先在test数据库中新建一个my_test表,该表具有三个字段tid int类型, tname nvarchar类型, tt nvarchar类型 (注意:my_test表中的数据类型必须与Excel中相应字段的类型一致) 2、 我们用SELECT * FROM OPENROWSET( ‘Microsoft.Jet.OLEDB.4.0 ‘, ‘Excel 5.0;DatabASE=
C#从excel导入数据到sql server
自己写的小程序,有效的解决了从excel中导入数据到sql server,人性化的做了很多判断。
C#实现Excel导入数据到SQL Server数据库
Excel导入数据,使用SqlBulkCopy类批量导入数据到数据库。


