日期:2014-05-16  浏览次数:20529 次

SQl Server 2008插入数据
插入数据失败,以下是代码和异常信息,已连接成功,不是连接失败的原因!实在搞不出来,快崩溃了,向大神求解
代码:
/**
 * 更新数据
 * @param sql
 * @param obj
 * @return
 */
public int update(String sql,Object... obj){
int result=0;
try {
con=getCon();
ps=con.prepareStatement(sql);
if(obj!=null){
for(int i=0;i<obj.length;i++){
ps.setObject(i+1,obj[i]);
}
}

result=ps.executeUpdate();

} catch (Exception e) {
e.printStackTrace();
}finally{
closeAll();
}
return result;
}

主函数插入语句:
result=dbcon.update("insert into admin_fxam values(?,?,?,?,?,?,?)",admin.getAdmId(),admin.getAdmName(),admin.getAdmBirthday(),admin.getAdmAge(),admin.getAdmSex(),admin.getAdmEmail(),admin.getAdmCard());

下面是输入的异常信息:
com.microsoft.sqlserver.jdbc.SQLServerException: 不支持从 UNKNOWN 到 UNKNOWN 的转换。
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:171)
at com.microsoft.sqlserver.jdbc.DataTypes.throwConversionError(DataTypes.java:1117)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.setObject(SQLServerPreparedStatement.java:977)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.setObjectNoType(SQLServerPreparedStatement.java:912)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.setObject(SQLServerPreparedStatement.java:921)
at com.flb.db.DBcon.update(DBcon.java:54)
at com.flb.test.Test.main(Test.java:13)

------解决方案--------------------
java程序啊

忘了jdbc的连接方式了,不过觉得你这个setObject的方法定义的有问题

不过我觉得

for(int i=0;i<obj.length;i++){
ps.setObject(i+1,obj[i]);
}
这个有问题,你要给绑定变量赋值的时候,要说明数据类型吧

给你了C#的参考一下
        */
        private void button1_Click(object sender, EventArgs e)
        {
            //实例化Connection对象 
            SqlConnection connection = new SqlConnection("server=localhost;database=dbtest1;uid=sa;pwd='1");
            //实例化Command对象 
            string sql = "select * from t_1 where  Cloumn1=@Cloumn1";
            SqlCommand command = new SqlCommand(sql);


            //SqlDbType.Int变量的类型
            SqlParameter parameter = new SqlParameter("@Cloumn1", SqlDbType.Int);
            parameter.Value = this.textBox1.Text.Trim();
            command.Parameters.Add(parameter);//添加参数 


            command.Connection = connection;

            //实例化DataAdapter 
            SqlDataAdapter&n