//如果目标表不存在则创建,excel文件的第一行为列标题,从第二行开始全部都是数据记录
string strSql = string.Format("if not exists(select * from sysobjects where name = '{0}') create table {0}(", sheetName); //以sheetName为表名
foreach (System.Data.DataColumn c in ds.Tables[0].Columns)
{
strSql += string.Format("[{0}] varchar(255),", c.ColumnName);
}
strSql = strSql.Trim(',') + ")";
1、你要是想把空写成0,可以使用isnull(cast(字段名 as 数据类型),0);你要是正常值导入后变成空,那肯定是写入的问题,检查一下语句。
2、要是几万条记录,循环可能会很慢,那你就用 insert into 数据表 select * from 数据表,excel表 where 条件(数据表没有的,excel表有的)这种形式可能快一点。如果记录有更新,再用update语句。
我也就会这些了