stmt.executeUpdate("INSERT INTO pmailbox(id,reid,senduid,sendname,title,mailt
ext,sdate,newmail) VALUES(id 的值,'"+reid+"', '"+uname+"','"+sendname+"','"+ti
tle+"','"+mailtext+"',GETDATE(),0)");
该数据表中的列id时用来记录表中的记录数 如将插入的是第三条记录id 的值应为三 如将插入的是第10条记录“id 的值”应为10
如将插入的是第100条记录“id 的值”应为100
也就是“id 的值”这一变量要表示将插入的记录是第几条啊
我曾经尝试
ResultSet rs=stmt.executeQuery("select count(*) as ccount from pmailbox");
rs.next();
int intRow=rs.getInt("ccount")+1;
stmt.executeUpdate("INSERT INTO pmailbox(id,reid,senduid,sendname,title,mailte
xt,sdate,newmail) VALUES(intRow,'"+reid+"', '"+uname+"','"+sendname+"','"+titl
e+"','"+mailtext+"',GETDATE(),0)");出现如下错误啊
root cause java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]在此上下文中不允许使用 'intRow'。此处只允许使用常量、表达式或变量。不允许使用列名。intRow怎么变成列名?????????
高手指教oracle好像用个nextval之类的东西处理“id 的值”就可以解决问题啊
ext,sdate,newmail) VALUES(id 的值,'"+reid+"', '"+uname+"','"+sendname+"','"+ti
tle+"','"+mailtext+"',GETDATE(),0)");
该数据表中的列id时用来记录表中的记录数 如将插入的是第三条记录id 的值应为三 如将插入的是第10条记录“id 的值”应为10
如将插入的是第100条记录“id 的值”应为100
也就是“id 的值”这一变量要表示将插入的记录是第几条啊
我曾经尝试
ResultSet rs=stmt.executeQuery("select count(*) as ccount from pmailbox");
rs.next();
int intRow=rs.getInt("ccount")+1;
stmt.executeUpdate("INSERT INTO pmailbox(id,reid,senduid,sendname,title,mailte
xt,sdate,newmail) VALUES(intRow,'"+reid+"', '"+uname+"','"+sendname+"','"+titl
e+"','"+mailtext+"',GETDATE(),0)");出现如下错误啊
root cause java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]在此上下文中不允许使用 'intRow'。此处只允许使用常量、表达式或变量。不允许使用列名。intRow怎么变成列名?????????
高手指教oracle好像用个nextval之类的东西处理“id 的值”就可以解决问题啊
values('','','')
你第一个单引号呢?
sql server 中用indentity
oracle中用序列
mysql中对列用increment
*Create Database in SQL Server:
*
*create table mytb
*(
* id int primary key,
* name char(10)
*)
*/
import java.sql.*;
public class Increament
{
public static void main(String[] args) throws Exception
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url = ("jdbc:odbc:Demo");
Connection conn = DriverManager.getConnection(url);
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select count(id) from mytable");
int rowCount = 0;
rs.next();
System.out.println(rs.getInt(1));
rowCount = rs.getInt(1) + 1;
System.out.println(rowCount);
rs.close();
stmt.close();
PreparedStatement pstmt = conn.prepareStatement("insert into mytb values(?,?)");
pstmt.setInt(1,rowCount);
pstmt.setString(2,"abc");
pstmt.executeUpdate();
pstmt.close();
conn.close();
}
}