[问题] SQL 资传输错误

楼主: JamesAndy (乡民)   2014-09-29 11:18:41
最近我毕业专题在写网站时遇到了一个 不知道怎样问的问题
所以我就用我的方式说了,语意有点不顺,请见谅。
Log 记录档是这样描述的:
09-29 02:12:10.329: E/message(538): 资料传输错误!!
com.microsoft.sqlserver.jdbc.SQLServerException: 将 nvarchar 值转换为 JDBC 资
料类型 INTEGER 时发生错误。
而在 JSP 的SQL陈述句是:
SELECT * FROM CUSTOMER WHERE E_MAIL='andy0609@live.com'
资料厂商是 Microsoft SQL Server 2012
数据库中 E_MAIL 字段的资料格式是 NVARCHAR(50)
==============================================================================
以下是我这部分的程式片段
Connection conn = null;
Statement statement = null;
SQLException ex = null;
ResultSet rs = null;
try{
conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;" +
"databaseName=food;user=users;password=0000;");
statement = conn.createStatement();
rs = statement.executeQuery
("SELECT * FROM CUSTOMER WHERE E_MAIL='andy0609@live.com'");
......
}
catch(...){}finally{...}
===========================================================================
我是资讯传播科系的,科系其实跟写程式没有太大的关联
因为毕业专题的需要,这方面有很多是自学的。
所以请大家鞭小力一点
在这边先谢谢大家
作者: LaPass (LaPass)   2014-09-29 11:44:00
你打开你的数据库,看E_MAIL的类型是不是设定为integer?INTEGER是数字,你要改成字串nvarchar 之类的
楼主: JamesAndy (乡民)   2014-09-29 12:46:00
但是我在数据库中 资料格式是设 NVARCHAR
作者: LaPass (LaPass)   2014-09-29 12:50:00
那你找一下出错的地方,那错误讯息是转型失败
作者: haha02 (来人!上夹棍!)   2014-09-29 13:07:00
是不是从ResultSet取资料的时候写成getInt了?
楼主: JamesAndy (乡民)   2014-09-29 13:23:00
真的打成 getInt了!犯下了粗心的错误 谢谢 haha02

Links booklink

Contact Us: admin [ a t ] ucptt.com