请高手指教:有关数据库编程
我用的是Microsoft office 2007桌面型数据库,它的后辍是以.accdb结尾的那种.请先看以下代码:
package package2;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
public class Add implements ActionListener{
	Frame f;
	Label l1,l2;
	TextField tf1,tf2;
	Button b1,b2;
	Panel p1,p2,p3;
	Connection cc;
	DriverManager dr;
	Statement st;
	Add()
	{
		f=new Frame();
		p1=new Panel();
		p2=new Panel();
		p3=new Panel();
		l1=new Label("user_id");
		l2=new Label("user_name");
		b1=new Button("Confirm");
		b2=new Button("Cancel");
		tf1=new TextField();
		tf2=new TextField();
		f.setLayout(new GridLayout(3,1));
		p1.add(l1);
		p1.add(tf1);
		p2.add(l2);
		p2.add(tf2);
		p3.add(b1);
		p3.add(b2);
		f.add(p1);
		f.add(p2);
		f.add(p3);
		f.setSize(250,300);
		f.setResizable(false);
		f.setVisible(true);
		b1.addActionListener(this);
		b2.addActionListener(this);
		f.addWindowListener(new WindowAdapter(){
			public void windowClosing(WindowEvent e)
			{
				System.exit(0);
			}
		});
	}
	public void insert() throws 
SQLException	{
		String ID=tf1.getText().trim();
		String user_name=tf2.getText().trim();
		String sql1="insert into table1 values('"+ID+"','"+user_name+"')";
		try {
			Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
		} catch (
ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		cc=DriverManager.getConnection("jdbc:odbc:two");
		st=cc.createStatement();
	    int i=st.executeUpdate(sql1);	     
	}
	public void actionPerformed(ActionEvent e)
	{
		if(e.getSource()==b1)
		{
			try {
				this.insert();
			} catch (SQLException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			}
		}
	}
	public static void main(String [] args)
	{
		new Add();
	}
}
    当我运行并在面板中输入后,就报这样错:
    由于将在索引、 主关键字、或关系中创建重复的值,请求对表的改变没有成功。 改变该字段中的或包含重复数据的字段中的数据,删除索引或重新定义索引以允许重复的值并再试一次。
------解决方案--------------------那是你输入的数据和数据库里的重复了,你查看一下数据库,看看你要登录的数据是否存在了(看主键约束)