sqlserver 如何向数据库插入多条数据 数据条数不确定

sqlserver 如何向数据库插入多条数据 数据条数不确定,第1张

            using (SqlConnection conn = new SqlConnection("链接字符串"))

            {

                using (SqlBulkCopy bulk = new SqlBulkCopy("链接字符串"))

                {

                    //一次插入多少行数据

                    bulkBatchSize = 1000;

                    bulkDestinationTableName = "表名";

                    bulkColumnMappingsAdd("数据源中的列", "数据库中的列");

                    bulkWriteToServer(DataTable);

                }

            }

方法和详细的 *** 作步骤如下:

1、第一步,查询该库中的所有表,测试sql,代码见下图,转到下面的步骤。

2、第二步,执行完上面的 *** 作之后,查询有多少个数据表,见下图,转到下面的步骤。

3、第三步,执行完上面的 *** 作之后,在TEST的开头编写一个查询表的脚本,每个表中的记录数,代码见下图,转到下面的步骤。

4、第四步,执行完上面的 *** 作之后,执行sql,在输出窗口中,可以看到每个表的输出,见下图。这样,就解决了这个问题了。

//将数据库中的数据条数分段

public void division(){

//获取要导入的总的数据条数

String sql3="SELECT count() FROM [CMD][dbo][mycopy1]";

try {

pss=consprepareStatement(sql3);

rss=pssexecuteQuery();

while(rssnext()){

Systemoutprintln("总记录条数:"+rssgetInt(1));

sum=rssgetInt(1);

}

//每30000条记录作为一个分割点

if(sum>=30000){

n=sum/30000;

residue=sum%30000;

}else{

residue=sum;

}

Systemoutprintln(n+" "+residue);

} catch (SQLException e) {

// TODO Auto-generated catch block

eprintStackTrace();

}

}

线程类

public MyThread(int start,int end) {

thisend=end;

thisstart=start;

Systemoutprintln("处理掉余数");

try {

Systemoutprintln("--------"+ThreadcurrentThread()getName()+"------------");

ClassforName(SQLSERVERDRIVER);

Systemoutprintln("加载sqlserver驱动");

cons = DriverManagergetConnection(CONTENTS,UNS,UPS);

stas = conscreateStatement();

Systemoutprintln("连接SQLServer数据库成功!!");

Systemoutprintln("加载mysql驱动");

ClassforName(MYSQLDRIVER);

con = DriverManagergetConnection(CONTENT,UN,UP);

sta = concreateStatement();

// 关闭事务自动提交

consetAutoCommit(false);

Systemoutprintln("连接mysql数据库成功!!");

} catch (Exception e) {

eprintStackTrace();

}

// TODO Auto-generated constructor stub

}

public ArrayList<Member> getAll(){

Member member;

String sql1="select from (select row_number() over (order by pmcode) as rowNum," +

" from [CMD][dbo][mycopy1]) as t where rowNum between "+start+" and "+end;

try {

Systemoutprintln("正在获取数据");

allmembers=new ArrayList();

rss=stasexecuteQuery(sql1);

while(rssnext()){

member=new Member();

membersetAddress1(rssgetString("address1"));

membersetBnpoints(rssgetString("bnpoints"));

membersetDbno(rssgetString("dbno"));

membersetExpiry(rssgetString("expiry"));

membersetHispoints(rssgetString("hispoints"));

membersetKypoints(rssgetString("kypoints"));

membersetLevels(rssgetString("levels"));

membersetNames(rssgetString("names"));

membersetPmcode(rssgetString("pmcode"));

membersetRemark(rssgetString("remark"));

membersetSex(rssgetString("sex"));

membersetTelephone(rssgetString("telephone"));

membersetWxno(rssgetString("wxno"));

membersetPmdate(rssgetString("pmdate"));

allmembersadd(member);

// Systemoutprintln(membergetNames());

}

Systemoutprintln("成功获取sqlserver数据库数据!");

return allmembers;

} catch (SQLException e) {

// TODO Auto-generated catch block

Systemoutprintln("获取sqlserver数据库数据发送异常!");

eprintStackTrace();

}

try {

rssclose();

stasclose();

} catch (SQLException e) {

// TODO Auto-generated catch block

eprintStackTrace();

}

return null;

}

public void inputAll(ArrayList<Member> allmembers){

Systemoutprintln("开始向mysql中写入");

String sql2="insert into testmycopy2 values (,,,,,,,,,,,,,)";

try {

ps=conprepareStatement(sql2);

Systemoutprintln("-------------------------等待写入数据条数: "+allmemberssize());

for(int i=0;i<allmemberssize();i++){

pssetString(1, allmembersget(i)getPmcode());

pssetString(2, allmembersget(i)getNames());

//Systemoutprintln(allmembersget(i)getNames());

pssetString(3, allmembersget(i)getSex());

pssetString(4, allmembersget(i)getTelephone());

pssetString(5, allmembersget(i)getAddress1());

pssetString(6, allmembersget(i)getPmdate());

pssetString(7, allmembersget(i)getExpiry());

pssetString(8, allmembersget(i)getLevels());

pssetString(9, allmembersget(i)getDbno());

pssetString(10, allmembersget(i)getHispoints());

pssetString(11, allmembersget(i)getBnpoints());

pssetString(12, allmembersget(i)getKypoints());

pssetString(13, allmembersget(i)getWxno());

pssetString(14, allmembersget(i)getRemark());

//插入命令列表

//psaddBatch();

psexecuteUpdate();

}

//psexecuteBatch();

concommit();

psclose();

conclose();

thisflag=false;

Systemoutprintln(ThreadcurrentThread()getName()+"--->OK");

} catch (SQLException e) {

// TODO Auto-generated catch block

Systemoutprintln("向mysql中更新数据时发生异常!");

eprintStackTrace();

}

}

@Override

public void run() {

// TODO Auto-generated method stub

while(true&&flag){

thisinputAll(getAll());

}

}

第一种方法:select from 表

select @@rowcount as '记录数' -----@@rowcount返回select from 表 中数据行的数目

第二种方法:1在表中加一identity属性列,每增加一条记录,该列值自动加1

最后一条记录的identity属性列值就是总条数

2最后查询表中最后一条记录的identity属性列的列值就可以知道总条数了

语句为:

select top 1 identity属性列 from 表 order by identity属性列 desc

以上就是关于sqlserver 如何向数据库插入多条数据 数据条数不确定全部的内容,包括:sqlserver 如何向数据库插入多条数据 数据条数不确定、如何在oracle数据库中查询记录总条数、java多线程更新数据库批量的数据信息吗怎么实现等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9707598.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存