我希望能够使用我尝试过的代码更新表,但是它总是像这样显示错误
我尝试了准备好的语句,但是我不知道我是否正确地执行了操作。
所以代码看起来像这样,
try{
String sql = "update master.Employees set EmployeeName = '" + jTextField1.getText() + "'" + ",Address = '" + jTextField3.getText() + "'" + ",PhoneNumber = '" +
jTextField4.getText() + "'" + ",EmailAddress = '" + jTextField5.getText() + "'" + "WHERE EmployeeID = " + jTextField1.getText();
Statement update = myconObj.createStatement();
update.executeUpdate(sql);
}
catch (SQLException e){
e.printStackTrace();
}
我试图输入员工ID,这是我数据库的主键,以便能够更新,但它始终显示错误:
java.sql.SQLSyntaxErrorException:类型为'INTEGER'的列不能 保留“ CHAR”类型的值。
我想我弄乱了抓斗结构,因为它显示了这一点
¬í sr %org.netbeans.lib.ddl.impl.CreateTable¢”j ™ xr +org.netbeans.lib.ddl.impl.ColumnListCommand2›Œî]2)³ L columnst Ljava/util/Vector;xr )org.netbeans.lib.ddl.impl.AbstractCommandø8¦Œ·q•ª Z executionWithExceptionZ newObjectL addpropst Ljava/util/Map;L formatt Ljava/lang/String;L nameq ~ L ownerq ~ L quoteStrq ~ L spect ,Lorg/netbeans/lib/ddl/DatabaseSpecification;xp pt :create table [{object.owner}.]{object.name}
(
{columns}
)t EMPLOYEESpppsr java.util.VectorÙ—}[€;¯ I capacityIncrementI elementCount[ elementDatat [Ljava/lang/Object;xp ur [Ljava.lang.Object;ÎXŸs)l xp
sr %org.netbeans.lib.ddl.impl.TableColumn;¦±5‘b I decsizeZ nullableI sizeI typeL checkeq ~ L constraintColumnsq ~ L defvalq ~ xr -org.netbeans.lib.ddl.impl.AbstractTableColumn¸Ô§y[k Z newColumnZ newObjectL addpropsq ~ L cnameq ~ L formatq ~ L nameq ~ L otypeq ~ L refcolq ~ L reftabq ~ xppt
EMPLOYEEIDt ³{column.name} {column.type}[({column.size}[,{column.decsize}])][ {column.type.suffix}][ default {default.value}][ {column.notnull}not null][ check ({check.condition})] primary keyt
EMPLOYEEID_PKt PRIMARY_KEYpp
pppsq ~ pt EMPLOYEENAMEt §{column.name} {column.type}[({column.size}[,{column.decsize}])][ {column.type.suffix}][ default {default.value}][ {column.notnull}not null][ check ({check.condition})]q ~ t COLUMNpp 2 pppsq ~ pt ADDRESSq ~ q ~ q ~ pp 2 pppsq ~ pt PHONENUMBERq ~ q ~ q ~ pp
pppsq ~ pt EMAILADDRESSq ~ q ~ q ~ pp 2 pppsq ~ pt IMAGEq ~ q ~ !q ~ pp 2 pppppppx
答案 0 :(得分:1)
尝试使用length(init)
,如下所示:
PreparedStatement
答案 1 :(得分:0)
函数调用jTextField1.getText()
基本上返回一个String
对象,并且数据库需要一个整数。尝试使用Integer.parseInt(jTextField1.getText())
。
答案 2 :(得分:0)
您需要转换-939524096 | 1100 1000 0000 0000 0000 0000 0000 0000
200 | 0000 0000 0000 0000 0000 0000 1100 1000
的值才能传递jTextField1.getText ()
。
您可以按照以下方式进行更新
integer
答案 3 :(得分:0)
也许其他字段是Integer
,您可以检查PhoneNumber
是由Integer
设计的吗?
答案 4 :(得分:0)
问题可能是间距。
代替
+ "WHERE EmployeeID = " + jTextField1.getText();
您应该写
+ " WHERE EmployeeID = " + jTextField1.getText();
答案 5 :(得分:0)
从整数值电话号码中删除 ''
,使您的代码看起来像这样
String sql = "update master.Employees set EmployeeName = '" + jTextField1.getText() + "'" + ",Address = '" + jTextField3.getText() + "'" + ",PhoneNumber = " +
jTextField4.getText() + " + ",EmailAddress = '" + jTextField5.getText() + "'" + "WHERE EmployeeID = " + jTextField1.getText();
Statement update = myconObj.createStatement();
提示:
Char='123434'
Integer=12345