2017-02-16 3 views
0

У меня возникла проблема с уникальным идентификатором из MySQL, который был, когда я попытался вставить массив данных в таблицу, которая имеет uniqueidentifier в одном из столбцов, он просто говорит, что преобразование не удалось при преобразовании строки в uniqueidentifier.Android java insert to sql-server datatype (преобразование не удалось при преобразовании из символьной строки в 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. Столбец UniqueIdentifier позволяет утратившим пытался вставить его недействительным, та же ошибка.

  2. Пробный код GUID андроида, ту же ошибку, обнаруженный sql server uid являются последовательными, которые отличаются от java uid.

  3. Пробовал объявлять переменную UniqueIdentifier из библиотеки JDBC, такую ​​же ошибку.

Я нашел пост, что упоминание о UID генератора тот генерирует последовательный UID, который совместим с SQL UID типа данных, но пост ответ был очень неопределенным. Мне просто нужны подсказки или несколько примеров, чтобы создать собственный код. Надеюсь, я предоставил достаточно данных. Любой, кто хочет показать мне веревку? BTW Я использую MSSQL 2016 и используя Android Studio как платформу Java.

+0

Вы должны использовать '' CONVERT' или NEWID' – Sami

+0

Является '' DepositorID' uniqueidentifie' и вы пытаетесь пройти 'nokppv' которые содержат строку? – Sami

+0

Я дам ему выстрел с CONVERT, но не NEWID от C#? theres NEWID в java также? –

ответ

0

Try:

+"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 ​​(' 840403055141 ',' Shariffah Saralisha binti Syed Ali ',' P ',' 04-03-1984 ',' K ',' 015 ',' null ',' No 43, Jalan valera 1/3, Taman Tingtong ',' нуль», '43900', 'Сепанг', 'К', 'Y', 'NULL', '', '[email protected]', '123', '123', 'ПРЕОБРАЗОВАНИЯ (UniqueIdentifier,' 55555555 -2222-2222-2222-222222222222 '),' 2017-02-16 19:59:22 ',' CONVERT (uniqueidentifier, '22222222-2222-2222-2222-222222222222'), 'null') –

+0

ошибка была Неверный синтаксис рядом с '5555555'. я проверил запрос, но с ним ничего не было видно. Я знаю его первый uniqueid, который созданBy, но два столбца до него позволяет null –

Смежные вопросы