4

SQLite にデータベースがあり、空のxyzという名前のテーブルがあります。csvファイルからそのテーブルにデータをインポートしたい。

ここで、csv ファイルをインポートしようとすると、メイン テーブルにインポートするように求められますが、データをxyzテーブルにインポートしたいと考えています。

どうやってやるの?

4

3 に答える 3

3

以下のコードで完了しました。それを実装する必要があります:-

 -(void)restore{
 @try {
      NSURL *url=[NSURL URLWithString:[NSString stringWithFormat:@"%@%@?userid=%@",kHOSTPATH,kCSVLIST,[[cntrAppDelegate setServerDetails] valueForKey:@"kUSERID"]]];
 NSMutableURLRequest *requestMutable = [[NSMutableURLRequest alloc] init];
 [requestMutable setURL:url];
 NSError *error = [[NSError alloc] init];
 NSHTTPURLResponse *response = nil;
 NSData *urlData=[NSURLConnection sendSynchronousRequest:requestMutable returningResponse:&response error:&error];
 NSLog(@"Response code: %d", [response statusCode]);
 if ([response statusCode] >=200 && [response statusCode] <300)
 {
  NSString *responseData = [[NSString alloc]initWithData:urlData encoding:NSUTF8StringEncoding];
  NSLog(@"Response ==> %@", responseData);
  SBJsonParser *jsonParser = [SBJsonParser new];
  NSDictionary *jsonData = (NSDictionary *) [jsonParser objectWithString:responseData error:nil];
  NSLog(@"--------=========%@============-------------",jsonData);
  NSDictionary *dic = [jsonData objectForKey:@"Root"];
  NSLog(@"---------------------ROOT VALUE IS %@",dic);
  NSLog(@"----------------COUNT IS %d",[dic count]);
  for (int i = 0; i < [dic count]; i++) 
  {
       NSString *str = [[dic valueForKey:@"CSV_File"]objectAtIndex:i];
       NSLog(@"STR IS %@",str);
        [self.arrListOfCSV addObject:str];
   }
   if ([jsonData valueForKey:@"Root"] == 0)
   {

   }
    else
   {
   }
   } 
于 2012-09-25T10:23:07.920 に答える
3

あなたはこのようにすることができます、

まず、csv ファイルをバンドルに追加する必要があります。

次に、csv からデータベースにデータを追加する場所でこのメソッドを呼び出すことができます

-(void)loadCSVData{
NSString *path1=[[NSString alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"YOUR_CSV_FILENAME" ofType:@"csv"]  usedEncoding:&encoding error:nil];
NSArray *messArr=[path1 componentsSeparatedByString:@"\n"];
if(messArr)
{
for(int i=1;i<=[messArr count]-2;i++)
    {
NSMutableDictionary *d=[[NSMutableDictionary alloc] init];
 NSString *StrValue=[NSString stringWithFormat:@"%@",[messArr objectAtIndex:i]];
 StrValue=[StrValue stringByReplacingOccurrencesOfString:@"\"" withString:@""];
 StrValue=[StrValue stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
 //  Here give whatever saperator you need to saperate data
 NSArray *arr=[StrValue componentsSeparatedByString:@","];

 [d setValue:[arr objectAtIndex:0] forKey:@"YOUR_TABLE_FIELD_1"];
 [d setValue:[arr objectAtIndex:1] forKey:@"YOUR_TABLE_FIELD_2"];
 [d setValue:[arr objectAtIndex:2] forKey:@"YOUR_TABLE_FIELD_3"];

  //Here add logic to insert row in your database table
}
}
于 2012-09-25T10:28:49.013 に答える
0

Linux でデータをインポートすることをお勧めします。そして、ディスク オペレーション システムで、SQLite に入った後、次のように入力します。

separator",";

choose your csv pathxyz をインポートします。という名前のテーブルを作成する場合xyz、名前はcsvファイルと一致する必要があります。

于 2012-10-10T05:53:33.977 に答える