我遇到了MySQL的uniqueidentifier问题,当我试图插入一个数据数组到一个表中有一个uniqueidentifier数据类型在其中一列中,它只是表示在将字符串转换为uniqueidentifier时转换失败。android java插入到sql-server数据类型(转换失败时,从字符串转换为uniqueidentifier)
下面是MySQL的块:
if (Gender.trim().equals(""))
z = "Value not enough";
else {
try {
Connection con = connectionClass.CONN();
if (con == null) {
z = "Error in connection with SQL server";
} else {
final String query = "USE [dbtest]" +
"insert into [tablename] ([DepositorID],[Name],[Sex],[DateOfBirth],[Race],[Occupation],[Occupation_others],[AddressLine1],[AddressLine2],[Postcode]," +
"[City],[State],[AgeSah],[TelNo],[HPNo],[Email],[Bank],[BankNo],[CreatedBy],[CreatedOn],[ModifiedBy],[ModifiedOn]) values " +
"('" + nokppv + "','" + Namev + "','" + sex + "','" + Date + "','" + Race + "','" + Occupation + "','" + Occupation2 + "','" + Address + "','" + Address2 +
"','" + Postcode + "','" + City + "','" + State + "','" + agesah + "','" + telno + "','" + Phonev + "','"+ Email +"','"+ Bank +"','"+ BankNo +
"',' "+ chars +"','"+ CreatedOn +"','"+ chars1 +"','" + ModifiedOn + "')";
System.out.println("Query:"+query);
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(query);
if (rs.next()){
z = "Registration successful";
isSuccess = true;
}else {
z = "Registration error";
isSuccess = false;
}
}
} catch (Exception ex) {
isSuccess = false;
z = "Exceptions";
System.err.println("Message:"+ex.getMessage());
System.err.println("Cause:"+ex.getCause());
System.out.println("Query:"+query);
}
}
}
return z;
}
,我已经尝试过
的唯一标识符的列允许空,并试图插入空,同样的错误的东西。
试过了android的GUID码,同样的错误,发现sql server uid是顺序的,它与java uid不同。
尝试从JDBC库中声明UniqueIdentifier变量,出现同样的错误。
我也发现了一些职位,提UID发电机的那产生一个连续的UID与SQL数据类型UID但答案后兼容是非常模糊的。 我只是需要提示或一些例子来使我自己的代码,我希望我提供足够的数据。任何人都愿意向我展示绳子?顺便说一句我正在使用MSSQL 2016 并使用Android Studio作为Java平台。
您应该使用'CONVERT'或'NEWID' – Sami
是'DepositorID'一个'uniqueidentifie'并尝试通过'nokppv'包含'string'? – Sami
我会用CONVERT给它一个镜头,但不是NEWID来自C#吗?在Java中theres NEWID以及? –