㈠ C# 多次查询数据库
publicDataTabledcgettable(ArrayListarray,stringtablename,stringconditions)
{
DataTabletbl=newDataTable(tablename);//声明一个DataTable对象
try
{
stringcmdtxt1="(";
foreach(stringainarray)
{
cmdtxt1+=string.Format("'{0}',",a);
}
cmdtxt1=cmdtxt1.Substring(0,numbers.Length-1)+")";
cmdtxt1=string.Format("select*fromstudentwherenomberin{0}",cmdtxt1);//确保你的表名和列名书写正确
sqlDataAdapterrdr=new旦胡行SqlDataAdapter(cmdtxt1,getcon());
rdr.Fill(tbl);
}
模哗catch(Exceptionex)
{
MessageBox.Show("错误:"+ex.Message,"错误提示",MessageBoxButtons.OKCancel,MessageBoxIcon.Error);
returnnull;
}
finally
{
if(getcon().State==ConnectionState.Open)
{
getcon().Close();
getcon().Dispose();
}
}
做雹returntbl;//DataTable应该在这里返回
}
㈡ 循环中查询数据库会不会效率低下
在循环里面去操作数据库肯定会慢的,而且还容易碰到新手,在循环里面创建数据库连接,会导致连接数满。一般查询的话,在外层一次性查询出来 然后 在逻辑层去循环组织数据。如果是新增,则可以考虑使用批量插入的方法去处理。
㈢ 查询一百次数据库跟循环一百次list哪个效率高
当然是循环了知枣
查询数据还要建立到数据库的连接,由数据库返回结果集再由代码解析,这样无形中还增加了数据库服务器的资源占用,虽然一些情况下感觉不出来
从编码设计上应当优先代码内进行逻辑处理,减少数据库压力,当然如果应用场景特殊,查数搭纳拆据库也无可茄雀厚非
㈣ sql 有很多条记录 每次查询200条
为了减少数据传递量,增加查询效率,这种分也是很有必要的。
这需要写一个存储过程,然后前台提交参数,比如2,存储过程获得参数以后,计算出200-400,然后再从数据库中读出这200条即可,更进一步如果需要总页数和分页数,也可以把总的记录数/200作为总页数返回。
也就是说,你每次查询的结果集仅仅是200条,并不是35670。
㈤ java如何循环查数据库同一张表
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
//stmt.executeUpdate("create table People(name varchar(255),A int,B int)");
//stmt.executeUpdate("insert into People values('张三',1,0)");
//stmt.executeUpdate("insert into People values('李四',2,1)");
//stmt.executeUpdate("早祥insert into People values('王五',3,1)");
//李则stmt.executeUpdate("insert into People values('赵云',4,2)");
//stmt.executeUpdate("insert into People values('张飞',5,3)");
public class Test {
private static void query(Connection conn,String sql,int a) {
PreparedStatement stmt = null;
ResultSet rs = null;
try {
stmt = conn.prepareStatement(sql);
stmt.setInt(1, a);
rs = stmt.executeQuery();
while (rs.next()) {
System.out.println(rs.getString("name")+":"+rs.getInt("A"));
query(conn,sql,rs.getInt("A"));
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
if (rs != null) {
try {
rs.close();
rs=null;
System.out.println(a+":rs closed.");
} catch (SQLException e) {
e.printStackTrace();
}
}
if (stmt != null) {
try {
stmt.close();
stmt=null;
System.out.println(a+":stmt closed."哪睁棚);
} catch (SQLException e) {
e.printStackTrace();
}
}
}
System.out.println("===============================");
}
public static void main(String[] args) {
Connection conn = null;
try {
conn = DriverManager.getConnection("jdbc:derby:E:/Derby/test");
String sql="select * from people where B=?";
query(conn,sql, 1);
} catch (SQLException e) {
e.printStackTrace();
} finally {
if (conn != null) {
try {
conn.close();
System.out.println("Connection关闭。");
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}
㈥ 最近项目数据库量大,现需要实现用一个线程循环(for)读取库中记录且每次只读取200条,语言java数据库mysql
PreparedStatement pstmt = con.prepareStatement("select * from 表 where 发送状态=0 limit 0,200"兆缓);
resultset rs = pstmt.executequery();
while(rs.next()){
string phone=rs.getstring("用户手机");
doSendMsg(rs.getstring("用户手机"),rs.getstring("信息内族汪模容"));
system.out.println("陵念发送信息:" + phone);
}
rs.close();
pstmt.close();
conn.close();
㈦ 想请问一下关于Java里面批量执行select语句的问题
这个设计没能达到理想状态,悉宏余程序开发中应尽可能少访问数据库。如果你必须同时睁滚查询200次,数绝枯据库表必须建立索引,集合查询,线程并发。一条查询花费时间一般是毫秒级。
㈧ SQL 循环查100多个表
楼主是不是想要查询列表中所有表的记录条数,这100多个表结构一样的吧??
如果是,那么好办了。
首先说一下你可以小睡一会儿的原因:因为每次你都去open一次连接,关闭一次连接,想象一下吧,连续打开关闭100多次数据库连接,别说查询了,光打开关闭连接就够你睡一会儿了。
你需要做的是,把这100多条sql语句联合起来,然后用union:
select distinct 村,乡镇 from 文本1
union
select distinct 村,乡镇 from 文本2
.......
然后在最外面加一个select显示你要的结果,这样就是一条sql语句,只是union多了一些,但是无伤大雅,只要你的表数据不是几十万那样的。。。
如果不是上述问题,那就得研究一下脚本优化的问题了。
㈨ 怎样循环查询某个数据库
1、数据之中可以写一个查询脚本 每次重复执行芦棚脚本即可
2、程序之中使用循洞哗岁环纳睁语句将查询操作作为循环体即可
㈩ PHP程序:循环查询数据库字段的方法
完整的代码如下:
$con = mysql_connect('localhost(服务器地址)', '数据库用户名', '数据库密码');
//数据库连接。
if (!$con)
{
die('Could not connect: ' . mysql_error());
}//连接失败输出错误
mysql_select_db('数据库名', $con);
$sql = "select Name from 表名;";
$result = mysql_query($sql,$con);
while($row= mysql_fetch_array($result)){
echo $row['Name'];
}