首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

必须声明变量 '@P1',表名是?号,该怎么处理

2012-03-06 
必须声明变量 @P1,表名是?号sql的代码:,问题,我想把表名也写写成?,但报这个异常,已经setjava.sql.SQLExc

必须声明变量 '@P1',表名是?号
sql的代码:,问题,我想把表名也写写成?,但报这个异常,已经set
java.sql.SQLException: [Microsoft][ODBC SQL Server Driver][SQL Server]必须声明变量 '@P1'。执行execute什么意思public void insertInfo(LoginBean login,String sqltable) throws Exception
{

try
{
System.out.println("用户名:" + login.username);
System.out.println("真名:" + login.truename);
System.out.println("用户名:" + login.pwd);
System.out.println("用户名:" + login.pwd1);
System.out.println("用户名:" + login.city);
System.out.println("用户名:" + login.cardno);
System.out.println("用户名:" + login.tel);
System.out.println("用户名:" + login.email);
// 以上的用户名能够输出

System.out.println(dc.getConnection());// 这里输出 为null

// dc对象中包含了class.forname,和getConnection,getConnectio中返回con
String sql = "insert into ?(username,truename,pwd,pwd1,city,address,cardno,tel,email,cardtype) values(?,?,?,?,?,?,?,?,?,?)";
PreparedStatement pstmt = dc.getConnection().prepareStatement(sql);

System.out.println("sql执行");// 这里没有执行
pstmt.setString(1,sqltable);
pstmt.setString(2, login.username);
pstmt.setString(3, login.truename);
pstmt.setString(4, login.pwd);
pstmt.setString(5, login.pwd1);
pstmt.setString(6, login.city);
pstmt.setString(7, login.address);
pstmt.setString(8, login.cardno);
pstmt.setString(9, login.tel);
pstmt.setString(10, login.email);
pstmt.setString(11, login.cardtype);

System.out.println("已经set");// 这也没有执行,
pstmt.execute();

} catch (Exception ex)
{
System.out.print(ex);
}
System.out.println("执行execute");// 执行了,

}


[解决办法]
要用普通的statment才行吧,表名无法作为绑定变量吧。
[解决办法]
没这么用过 表名不能用? 代替吧?

用Statement 吧

热点排行