mysql不能用sqlbulkcopy_使用SqlBulkCopy导入的数据无法组合查询

SQL语句为:select * from Customer_Deposit_data where  sjrq=”2016-05-18″ and

ckzh in(select  ckzh from Customer_deposit  where  khjlh=”000890″)

其中5月18日的数据为本人使用SqlBulkCopy方式从Excel中批量导入的,之前数据为数据库直接导入。现在出现的情况是5月18日的数据本人使用select * from Customer_Deposit_data where  sjrq=”2016-05-18″或select * from Customer_Deposit_data where

ckzh in(select  ckzh from Customer_deposit  where  khjlh=”000890″)都能迅速得到结果,但是使用组合以后就提示超时,无法获取结果。

注:ckzh的数据量目前也就100多点。

以下为本人C#中的批量导入代码:

using (SqlConnection conn = new SqlConnection(DbUtils.cs))

{

conn.Open();

SqlTransaction Transaction = conn.BeginTransaction();//开启事务

using (SqlBulkCopy BulkCopy = new SqlBulkCopy(conn, SqlBulkCopyOptions.Default, Transaction))

{

try

{

BulkCopy.BulkCopyTimeout = 360;

BulkCopy.DestinationTableName = TableConvention.Resolve(new Customer_Deposit_Data());//目标表

BulkCopy.WriteToServer(ds.Tables[i]);

BulkCopy.ColumnMappings.Clear();

Transaction.Commit();//事务提交

}

catch

{

Transaction.Rollback();//事务回滚

}

finally

{

BulkCopy.Close();

Transaction.Dispose();//事务释放

conn.Close();

}

}

}

解决方案

80

这个插入没什么关系,sql改下试试

select a.* from Customer_Deposit_data a

inner join Customer_deposit b on a.ckzh = b.ckzh

where  a.sjrq="2016-05-18"

and b.khjlh="000890"

假如超时,就打开执行计划检查所需索引有没加全

20

这么大的标题,结果内容跟SqlBulkCopy没一毛钱关系

你查下下面这段SQL实际花多少时间吧

select  ckzh from Customer_deposit  where  khjlh="000890"

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明使用SqlBulkCopy导入的数据无法组合查询!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值