2017-02-16 91 views
0

我遇到了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; 
    } 

,我已经尝试过

  1. 的唯一标识符的列允许空,并试图插入空,同样的错误的东西。

  2. 试过了android的GUID码,同样的错误,发现sql server uid是顺序的,它与java uid不同。

  3. 尝试从JDBC库中声明UniqueIdentifier变量,出现同样的错误。

我也发现了一些职位,提UID发电机的那产生一个连续的UID与SQL数据类型UID但答案后兼容是非常模糊的。 我只是需要提示或一些例子来使我自己的代码,我希望我提供足够的数据。任何人都愿意向我展示绳子?顺便说一句我正在使用MSSQL 2016 并使用Android Studio作为Java平台。

+0

您应该使用'CONVERT'或'NEWID' – Sami

+0

是'DepositorID'一个'uniqueidentifie'并尝试通过'nokppv'包含'string'? – Sami

+0

我会用CONVERT给它一个镜头,但不是NEWID来自C#吗?在Java中theres NEWID以及? –

回答

0

尝试:

+"CONVERT(uniqueidentifier,'"+chars+"')" 

+"CONVERT(uniqueidentifier,'"+chars1+"')" 

你应该得到:

values ('840403055141','Shariffah Saralisha binti Syed Ali','P','04-03-1984','K','015','null','No 43, Jalan valera 1/3, Taman Tingtong','null','43900','Sepang','K','Y','null','‌​','[email protected]‌​m','123','123',CONV‌​ERT(uniqueidentifier‌​,'55555555-2222-2222‌​-2222-222222222222')‌​,'2017-02-16 19:59:22','CONVERT(uniqueidentifier,'22222222-2222-2222-2222‌​-222222222222'),'nul‌​l') 
+0

错误消失了,非常感谢,但是这个错误弹出了下一个 –

+0

values(' '''Shariffah Saralisha binti Syed Ali','P','04-03-1984','K','015','null','No 43,Jalan valera 1/3,Taman Tingtong','空”, '43900', '雪邦', 'K', 'Y', '空', '', '[email protected]', '123', '123', 'CONVERT(唯一标识符,' 55555555 '22-16-2222-22222222222222'),'2017-02-16 19:59:22','CONVERT(uniqueidentifier,'22222222-2222-2222-2222-222222222222'),'null') –

+0

错误是'5555555'附近语法不正确。我检查了查询,但没有发现任何明显的错误。我知道它的第一个uniqueid,它是CreatedBy,但它允许null之前的两列 –

相关问题