String url2="jdbc:microsoft:sqlserver://QPSERVER:1433;DatabaseName=abc";
con2=DriverManager.getConnection(url2,usern,passw);
sql2 = con2.createStatement();
str2="select 表名,表中文名 from 表名参照 "; //表名是英文名称,表中文名实汉字
rs2=sql2.executeQuery(str2);
while (rs2.next())
{
s1=rs2.getString(1); System.out.println(s1+"+++++++++");
ss=rs2.getString(2); System.out.println(ss.equals(null)"+haha++");
for(int k=0;k<x;k++ )
{
if(arry[k].equalsIgnoreCase(s1))
{
// if(sslength() <= 0)
{
// list1.addItem(s1);
// System.out.println(s2.length()+"45645");
}
// else
{
list1.addItem(ss);
}
break;
}
}
}
为什么我加上ss.equals(null)程序就出错?如果我改为s1.equals(null)就没有错误?
是不是跟编码有关系?
这不是摆明欺负我这个新手么?
con2=DriverManager.getConnection(url2,usern,passw);
sql2 = con2.createStatement();
str2="select 表名,表中文名 from 表名参照 "; //表名是英文名称,表中文名实汉字
rs2=sql2.executeQuery(str2);
while (rs2.next())
{
s1=rs2.getString(1); System.out.println(s1+"+++++++++");
ss=rs2.getString(2); System.out.println(ss.equals(null)"+haha++");
for(int k=0;k<x;k++ )
{
if(arry[k].equalsIgnoreCase(s1))
{
// if(sslength() <= 0)
{
// list1.addItem(s1);
// System.out.println(s2.length()+"45645");
}
// else
{
list1.addItem(ss);
}
break;
}
}
}
为什么我加上ss.equals(null)程序就出错?如果我改为s1.equals(null)就没有错误?
是不是跟编码有关系?
这不是摆明欺负我这个新手么?
at fram.itemStateChanged(fram.java:207)
at javax.swing.JComboBox.fireItemStateChanged(Unknown Source)
at javax.swing.JComboBox.selectedItemChanged(Unknown Source)
at javax.swing.JComboBox.contentsChanged(Unknown Source)
at javax.swing.AbstractListModel.fireContentsChanged(Unknown Source)
at javax.swing.DefaultComboBoxModel.setSelectedItem(Unknown Source)
at javax.swing.JComboBox.setSelectedItem(Unknown Source)
at javax.swing.JComboBox.setSelectedIndex(Unknown Source)
at javax.swing.plaf.basic.BasicComboPopup$Handler.mouseReleased(Unknown Source)
at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at javax.swing.plaf.basic.BasicComboPopup$1.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
不胜感激,不胜感激啊!!!
还有一个建议,你要获取数据时,最好不要这样写:
s1=rs2.getString(1);
ss=rs2.getString(2);
改成s1=rs2.getString("字段名");
因为你的1,2会去与你的sql="",这里相对应,字段一多,会乱的,有时会对应错了。导致有空类型出错。
ss=rs2.getString(2); System.out.println(ss.equals(null)"+haha++");
改成
s1=rs2.getString(1); System.out.println(s1+"+++++++++");
ss=rs2.getString(2); System.out.println(ss == null ? "" : ss+"+haha++");
if(string==null),而不是string.equals(null)
7楼正解。