String sql="Select * from 数据库A.分栏1 Where Name= ? "
try{
PreparedStatement ps=cn.preparedCall(sql);
ps.setString(1,name)
ResultSet rs=ps.executeQuery();
//your code here
......
rs.close();
ps.close();
}
catch (Exception e)
{}

解决方案 »

  1.   

    String n = "asd";
    String sql="Select * from 数据库A.分栏1 Where Name= '"+n+"'";
      

  2.   

    BluePig(吹猪) 的方法比较好,并且PreparedStatement 是欲编译的,所以执行起来比较快,还有不易出现乱码,书上是这么说的。
      

  3.   

    用参数化查询来做:
    添加queryDataSet(设为queryDataSet1)和parameterRow(设为parameterRow1),在parameterRow1中添加name变量,
    在queryDataSet1的setQuery()方法中加入SQL语句:
    queryDataSet1.setQuery(new com.borland.dx.sql.dataset.QueryDescriptor(database1, "SELECT * FROM 数据库A.分栏1 WHERE Name = :name", parameterRow1, true, Load.ALL));
    执行用如下代码:
    parameterRow1.setString("name",XXX);
    queryDataSet1.refresh();
      

  4.   

    其中,SQL语句也可以写成如下方式:
    com.borland.dx.sql.dataset.QueryDescriptor(database1, "SELECT * FROM 数据库A.分栏1 WHERE Name = \'" + name + "\'", null, true, Load.ALL));
    用这种方式时,可实现模糊查询,把“=”换成“LIKE”即可:
    ……Name LIKE \'%" + name + "%\'……
    执行时用如下代码:
    name = "newString";
    com.borland.dx.sql.dataset.QueryDescriptor(database1, "SELECT * FROM 数据库A.分栏1 WHERE Name = \'" + name + "\'", null, true, Load.ALL));
    queryDataSet1.refresh();
      

  5.   

    写错了,应该这么写:
    name = "newString";queryDataSet1.close();com.borland.dx.sql.dataset.QueryDescriptor(database1, "SELECT * FROM 数据库A.分栏1 WHERE Name LIKE \'%" + name + "%\'", null, true, Load.ALL));
    queryDataSet1.refresh();
      

  6.   

    要看你的变量类型是什么了,是字符串的话,用hexiaofeng(java爱好者) (的办法就可以了,是数字型的话,把单引号去掉就可以了!