社区
Java SE
帖子详情
[ODBC Microsoft Access Driver] 参数不足,期待是 1是什么方面的错误?
zidover
2003-10-17 04:50:07
同
...全文
482
4
打赏
收藏
[ODBC Microsoft Access Driver] 参数不足,期待是 1是什么方面的错误?
同
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zidover
2003-10-17
打赏
举报
回复
测试代码:
import java.awt.event.*;
import java.awt.*;
import java.applet.*;
public class BeanTest6 extends Applet implements MouseListener
{
adduser cBean;
Button b;
TextField name;
TextField password;
TextField email;
TextField homepage;
Button bClose;
public void init()
{
//设置布局管理器
setLayout(new GridLayout(5,2));
//创建一个adduser实例
cBean=new adduser();
b=new Button("Register");
//给按钮b增加了事件监听者this,即按钮的单击事件将由BeanTest6来处理
b.addMouseListener(this);
add(new Label("name:"));
name=new TextField("",20);
add(name);
add(new Label("password"));
password=new TextField("",20);
add(password);
add(new Label("email"));
email=new TextField("",30);
add(email);
add(new Label("homepage"));
homepage=new TextField("",30);
add(homepage);
add(b);
bClose=new Button("close");
bClose.addMouseListener(this);
add(bClose);
}
public void destroy()
{
removeAll();
if(cBean!=null)
cBean.closeConnection();
}
public void mousePressed(MouseEvent e)
{
/*单击"Regeister"按钮,就将文本框中输入的用户名、密码、电子邮件、主页储存到user表格的一条新记录中*/
if(e.getSource()==b)
{
//设置cBean的属性值
cBean.setUsername(name.getText());
cBean.setPassword(password.getText());
cBean.setEmail(email.getText());
cBean.setHomepage(homepage.getText());
//如果用户名未重复,就将新用户的信息插入到数据库的表格中
if(cBean.checkUser())
cBean.addNewUser();
}
//按关闭按钮,退出应用程序
else if(e.getSource()==bClose)
{
System.out.println("I'm quitting!");
destroy();
System.exit(0);
}
}
public void mouseReleased(MouseEvent e){};
public void mouseEntered(MouseEvent e){};
public void mouseExited(MouseEvent e){};
public void mouseClicked(MouseEvent e){};
//定义了main方法,使得applet也可以作为应用程序独立运行
public static void main(String args[])
{
Frame f=new Frame("Beantest");
BeanTest6 bTest=new BeanTest6();
bTest.init();
bTest.start();
f.add("Center",bTest);
f.setSize(300,300);
f.show();
}
public String getAppletInfo()
{
return"A simple bean test program.";
}
}
zidover
2003-10-17
打赏
举报
回复
adduser.java,从db类派生出来,主要进行用户数据的读取以及添加操作,addNewUser()方法用来进行用户数据的添加,checkUser()方法用来检查用户名是否重复,另外还有些set/get方法用来对属性进行处理。
//import java.jdbc.driver.*;
import java.sql.*;
import java.lang.*;
//adduser由db派生出来,拥有db的成员变量和方法
public class adduser extends db
{
String Username="";
String Password="";
String Email="";
String Homepage="";
public boolean addNewUser()
{
boolean boadduser=false;
try
{
//进行用户注册的记录添加操作,生成sql语句
String sSql=new String("insert into user(username,password,email,homepage)");
sSql=sSql+" values('"+Username+"','"+Password+"','"+Email+"'+'"+Homepage+"')";
//一种调试方法,可以打印出sql语句,以便于查看错误
System.out.println(sSql);
//调用父类executeUpdate方法,并根据成功以否来设置返回值
if(super.executeUpdate(sSql))
boadduser=true;
}
catch(Exception ex)
{
System.err.println("adduser.addNewUser:"+ex.getMessage());
}
finally
{
//无论是否出错,都要返回值
return boadduser;
}
}
//checkUser()方法用来检测用户名是否重复,如果重复返回一个false
public boolean checkUser()
{
boolean boadduser=false;
try
{
//构建sql查询语句
String sSql="select * from user where username="+Username+"";
//调用父类的executeQuery方法
if((super.executeQuery(sSql)).next())
{
//查询出来的记录集不为空
boadduser=false;
}
else
{
boadduser=true;
}
}
catch(Exception ex)
{
System.err.println("adduser.addNewUser:"+ex.getMessage());
}
finally
{
return boadduser;
}
}
//属性的set/get方法,同请求的参数一致
//属性的用户名Username的get/set方法
public String getUsername()
{
return Username;
}
public void setUsername(String newUsername)
{
Username=db.toChinese(newUsername);
}
public void setPassword(String newPassword)
{
Password=newPassword;
}
//属性Email的get/set方法
public String getEmail()
{
return Email;
}
public void setEmail(String newEmail)
{
Email=newEmail;
}
//属性主页Homepage的get/set方法
public String getHomepage()
{
return Homepage;
}
public void setHomepage(String newHomepage)
{
Homepage=newHomepage;
}
}
zidover
2003-10-17
打赏
举报
回复
类文件db.java,封装了jdbc的驱动程序、连接数据库、访问USER表的一些操作,供继承它的子类直接使用:
import java.net.*;
import java.sql.*;
import java.lang.*;
import java.io.*;
import java.util.*;
public class db implements Serializable
{
static Connection conn=null;
//String ConnStr="jdbc:odbc:test";
Statement stmt=null;
ResultSet rs=null;
//db的构造函数
public db(){};
public static Connection getConnection()
{
try
{
//注册数据库驱动程序为ACCESS驱动
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
//建立数据库连接
conn=DriverManager.getConnection("jdbc:odbc:test");
}
catch(java.lang.ClassNotFoundException e)
{
//这样写是为了方便调试程序,出错打印mydb()就知道在什么地方出错了
System.err.println("mydb():"+e.getMessage());
}
catch(java.sql.SQLException e)
{
System.err.print("db():"+e.getMessage());
}
return conn;
}
//关闭数据库连接
public void closeConnection()
{
try
{
if(conn!=null)
conn.close();
}
catch(java.sql.SQLException e)
{
System.err.println("db():"+e.getMessage());
}
}
//入口参数为SQL语句,返回ResultSet对象
public ResultSet executeQuery(String sql)
{
rs=null;
try
{
Connection conn1=getConnection();
if(conn1 !=null)
{
stmt=conn.createStatement();
//执行数据库查询操作
rs=stmt.executeQuery(sql);
}
}
catch(SQLException ex)
{
System.err.println("db.executeQuery:"+ex.getMessage());
}
return rs;
}
//executeUpdate方法用于进行add或者update记录的操作
//入口参数为SQL语句,成功返回true,否则为false
public boolean executeUpdate(String sql)
{
boolean bupdate=false;
try
{
//建立数据库连接
Connection conn1=getConnection();
if(conn1!=null)
{
stmt=conn.createStatement();
int rowCount=stmt.executeUpdate(sql);
//如果不成功,bupdate就返回0
if(rowCount!=0)
bupdate=true;
}
}
catch(SQLException ex)
{
System.err.println("db.executeUpdate:"+ex.getMessage());
}
return bupdate;
}
//toChinese方法用于将一个字符串进行中文处理
//或者将会是???这样的字符串
public static String toChinese(String strvalue)
{
try
{
if(strvalue==null)
{
return null;
}
else
{
strvalue=new String(strvalue.getBytes("ISO8859_1"),"GBK");
return strvalue;
}
}
catch(Exception e)
{
return null;
}
}
}
lynx1111
2003-10-17
打赏
举报
回复
数据库表名写错了,或者写掉了一列
反正就是库名,表名,列名有问题
安装64位的
ODBC
驱动器,解决
ODBC
Microsoft
Access
Driver
网络访问已中断问题
安装64位的
ODBC
驱动器,解决
ODBC
Microsoft
Access
Driver
网络访问已中断问题
Microsoft
Access
Driver
(X86_X64)
Microsoft
Access
64位&32;位 驱动 支撑XP WIN7 WIN8 WIN10,适用于64位和32位
access
在
ODBC
中找不到
access
驱动的情况。 我真是搞不懂,就这两个驱动(主要是64位的驱动,32位的一般系统自带)
Qt数据库高级编程、SQLServer、MySQL、SQLite
Qt使用
ODBC
对
Access
数据库的增删改查 Qt数据库模块架构源码剖析 Qt使用MSVC、MinGW编译MySQL数据库驱动 Qt使用QMYSQL对MySQL数据库的增删改查 Qt使用...
Access
DatabaseEngine.zip(
Access
2007
ODBC
驱动)
Access
2007
ODBC
驱动,我下载之后上传的,其他人收取的积分都太多了,我都没有积分;上传上来方便大家下载资源。...下载本安装包之后,在
ODBC
数据源32位里面会增加
Microsoft
Access
Driver
(*. mdb,*. accdb)驱动程序。
64位
ODBC
驱动程序
Access
及Excel(无须删除原来的office方法)
64位windows平台默认不安装
Access
的64位
ODBC
驱动,此下载将安装一系列组件,帮助在现有的
Microsoft
Office 文件(例如
Microsoft
Office
Access
2010(*.mdb 和 *.accdb)文件和
Microsoft
Office Excel 2010(*....
Java SE
62,612
社区成员
307,332
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章