问题现在修改如下:
下面的程序在编译时是没有错的,在我J2ME客户端访问这个方法时错了
开了3个帖子,没人能回答正确,小弟真的很急,各位英雄,各位大哥大姐,如果懂的,请帮个忙认真看下好吗
本来想控制台输出察看的,可后来想想客户端没请求,怎么察看,servlet类作为表示层的怎么察看,种种迷惑都很不解
现在数据库的结构是这样的
景区表:scene
字段 id 数字(整型) name 文本
景点表:scenery
字段 id 自动编号 scene 数字(整型) name 文本 其他字段...
现在我要把景区放在一维,景点放在二维
个位帮忙看下,以下数据存储格式哪里错了,或者全错,那能给个方法吗,希望大家帮个忙,我万分感谢!
public Scenery[][] getSceneries()throws ModelException, ApplicationException{
Connection conn=null
Statement stmt=null
ResultSet rs=null
try{
String drname="sun.jdbc.odbc.JdbcOdbcDriver"
Class.forName(drname)
String url="jdbc:odbc:guidesys"
conn=DriverManager.getConnection(url)
stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE)
String sql="select * from scene"
rs=stmt.executeQuery(sql)
rs.last()
Scenery[][] sceneries=new Scenery[rs.getRow()][]
rs.beforeFirst()
int i=0
while(rs.next()){
Statement stmts=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY)
ResultSet rses=stmts.executeQuery("select * from scenery where scenery.scene="+rs.getInt(1)+"")
rses.last()
sceneries[i]=new Scenery[rses.getRow()]
rses.beforeFirst()
int j=0
while(rses.next()){
System.out.println(rses.getString(3))
sceneries[i][j]=new Scenery(rs.getString(2),rses.getString(3),rses.getString(4),rses.getString(5),rses.getString(6),rses.getString(7))
j++
}
rses.close()
stmts.close()
i++
}
rs.close()
stmt.close()
conn.close()
return sceneries
}catch(Exception e){
throw new ModelException(ModelException.CAUSE_SNACKS_NOT_FIND)
}
}
1、使用双层循环语句,就可以依次把数据顺序读入到一个二维数组当中了。2、例程:
#include <stdio.h>
#include <string.h>
#define MAXLINE 3
#define MAXCOLUMN 10
void main(void){
FILE *fp//文件指针
char arr[MAXLINE][MAXCOLUMN]={0} //定义3行10列的二维数组并初始化
int i = -1
if((fp=fopen("./test/filename.txt","r"))==NULL){ //打开txt文件
perror("File open error!\n")
return
}
while((fgets(arr[++i],MAXCOLUMN+1,fp))!=NULL) //读取一行并存到arr数组
printf("%d: ",i)//打印行号
//puts(arr[i])
char *subarr = strtok(arr[i]," ") //以空格为分隔符从arr[i]中获得字串
while(subarr!=NULL){
data[i][j] = atoi(subarr) //将字串转为int型数据存入data数组
printf("%d\t",data[i][j]) //打印data[i][j
subarr = strtok(NULL," ") //继续获得arr[i]中的字串
j++ //data数组列加一
}
printf("\n")
}
//循环完毕后,所有数据已在data数组中
printf("\n")
fclose(fp) //关闭指针
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)