Tried on a Motorola ET1 Tablet and on a Motorola Droid, both with
    Android 2.3. 
    
    I tried other samples, and this code for example works: 
    
string dbPath = Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal),"items.db3");
            bool exists = File.Exists(dbPath);
            if (!exists) SqliteConnection.CreateFile(dbPath);
            var connection = new SqliteConnection("Data Source=" + dbPath);
            connection.Open();
            if (!exists)
            {
                // This is the first time the app has run and/or that we need the DB.
                // Copy a "template" DB from your assets, or programmatically create one.
                var commands = new[]{
        "CREATE TABLE [Items] (Key ntext, Value ntext);",
        "INSERT INTO [Items] ([Key], [Value]) VALUES ('sample', 'text')",
        "INSERT INTO [Items] ([Key], [Value]) VALUES ('sample2', 'text2')"
    };
                foreach (var command in commands)
                {
                    using (var c = connection.CreateCommand())
                    {
                        c.CommandText = command;
                        c.ExecuteNonQuery();
                    }
                }
            }
            // use `connection`...
            // here, we'll just append the contents to a TextView
            using (var contents = connection.CreateCommand())
            {
                contents.CommandText = "SELECT [Key], [Value] from [Items]";
                var r = contents.ExecuteReader();
                while (r.Read())
                    textView1.Text += string.Format("\n\tKey={0}; Value={1}",
                            r["Key"].ToString(), r["Value"].ToString());
                r.NextResult();
            }
            connection.Close();


I can start from here now, but I'm still wondering what't wrong in the other 
code (and why it didn't trap the error but just exit the procedure when .Read()

Thanks,
Mattia




    
    
    Il 18/05/2012 14:30, ledz [via Mono for Android] ha scritto:
     On what real device did you test? 
      
      On 18 May 2012 12:57, mdurli < [hidden email] >
        wrote: 
         Hello, 
          
          I tried both with emulator and with real device. 
          
          Thanks, 
          Mattia 
          
          
          Il 18/05/2012 13:23, Wally McClure [via Mono for Android] ha
          scritto:
          
            
               Mattia,
                
                
                I haven't tried this under 4.2, but when the book
                  was written, the data readers did not work in the
                  emulator under the 4.0x versions we tested with at the
                  time, but worked in every physical device that we
                  tested against.  The joys of the emulator. 
                
                
              
              Wally 
                
                
                  
                    Date: Fri, 18 May 2012 13:12:04 +0200 
                  
                   From: [hidden

                      email] 
                    To: [hidden

                      email] 
                  
                  CC: [hidden

                    email] 
                  
                    Subject: Re: [mono-android] SQLite error 
                    
                    Hello Wally, 
                    
                    thanks for the quick response. 
                    
                    
                      
                        
                          
                            On that specific example, there should
                              be another button on that form.  IIRC, the
                              other button should insert some data into
                              the table.  When I get down to my office,
                              I'll verify this.
                          
                        
                      
                    
                    Yes there is a button and it completes the DB
                    creation and sample data insertion with success, so
                    that part works. 
                    The problem is with the second button that should
                    fetch the data with a datareader. 
                    
                    What I don't understand is why I can follow the
                    debug until the "while (sdr.Read())" line, and then
                    clicking F10 the debug jumps at the end of the
                    file... without rising any error, even if it's in
                    the try/catch block. 
                    I tried both in emulator and in real device. 
                    
                    Debug should work, because there is a third button
                    that connects to a SQLServer DB, that fails
                    correctly during the connection in its try/catch
                    block. 
                    
                    Thanks, 
                    Mattia 
                    
                  
                  
                    
                      
                        
                          
                            You should be able to create a DB and
                              store it in the assets directory.  When
                              the application is first deployed and run,
                              you can copy the db file out.  I haven't
                              done this, but you "should" be able to do
                              this.  I'm a db guy at heart, so sql
                              commands are easy to put together for me,
                              plus I like to use them when I update
                              apps.
                            Accessing the db remotely is way more
                              complicated than we are used to with VS.
                               You can use adb to connect to the db, but
                              you have to have the device.  I'm sure
                              that there are higher level tools that you
                              can use, but I am not aware of them.
                          
                          
                          
                          Wally 
                      
                      
                        
                          > Date: Fri, 18 May 2012
                            03:35:23 -0700 
                          
                           > From: [hidden email] 
                            > To: [hidden email] 
                          
                          
                             > Subject:
                              [mono-android] SQLite error 
                              > 
                              > Hello, 
                              > 
                              > I'm having this problem with the
                              sample code of the wrox book "Pro Android 
                              > programming with Mono for Android",
                              InternalNetworkData sample. 
                              > First it creates a DB and fills it
                              with data, with success, then tries to 
                              > read the data with a
                              SqliteDataReader. 
                              > I tried to debug it and when it gets
                              to the line "while (sdr.Read())" the 
                              > debug line jumps to the end of the
                              file, no errors, and non processing, 
                              > application stil running, and I can
                              press the button to get the data again. 
                              > What's wrong? with the code and with
                              my debug that can't get the error. 
                              > 
                              > string DatabaseName = "UserData.db3"; 
                              > string documents =
                              System.Environment.GetFolderPath( 
                              >
                              System.Environment.SpecialFolder.Personal); 
                              > string db = Path.Combine(documents,
                              DatabaseName); 
                              > var conn = new SqliteConnection("Data
                              Source=" + db); 
                              > var strSql = "select Name from
                              Customer where STATEID=@STATEID"; 
                              > var cmd = new SqliteCommand(strSql,
                              conn); 
                              > cmd.CommandType = CommandType.Text; 
                              > cmd.Parameters.Add(new
                              SqliteParameter("@STATEID", 2)); 
                              > 
                              > tv.Text = ""; 
                              > 
                              > try 
                              > { 
                              > conn.Open(); 
                              > SqliteDataReader sdr =
                              cmd.ExecuteReader(); 
                              > while (sdr.Read()) 
                              > { 
                              > tv.Text =
                              Convert.ToString(sdr["Name"]); 
                              > } 
                              > } 
                              > catch (System.Exception sysExc) 
                              > { 
                              > tv.Text = sysExc.Message; 
                              > } 
                              > finally 
                              > { 
                              > if (conn.State !=
                              ConnectionState.Closed) 
                              > { 
                              > conn.Close(); 
                              > } 
                              > conn.Dispose(); 
                              > 
                              > } 
                              > 
                              > 
                              > By the way, is there a way with a
                              thirdy part software or even with vs to 
                              > create a sqlite DB and deploy it with
                              the application? and maybe even to 
                              > access the sqlite DBs in the
                              connected device? asking too much? 
                              > 
                              > Thanks! 
                              > Mattia 
                              > 
                              > -- 
                              > View this message in context: 
http://mono-for-android.1047100.n5.nabble.com/SQLite-error-tp5709898.html 
                              > Sent from the Mono for Android
                              mailing list archive at Nabble.com. 
                              >
                              _______________________________________________ 
                              > Monodroid mailing list 
                            
                          
                           > [hidden email] 
                            > 
                            > UNSUBSCRIBE INFORMATION: 
                            > 
http://lists.ximian.com/mailman/listinfo/monodroid 
                          
                        
                      
                    
                  
                
              
            
             
              _______________________________________________ 
              Monodroid mailing list 
              [hidden
                email]  
              
              UNSUBSCRIBE INFORMATION: 
              http://lists.ximian.com/mailman/listinfo/monodroid 
              
              
            
            
            
              
                If you reply to this
                  email, your message will be added to the discussion
                  below: 
              
              
http://mono-for-android.1047100.n5.nabble.com/SQLite-error-tp5709898p5709904.html
 
            
            
              
                To unsubscribe from SQLite error, click here . 
                NAML  
            
          
          
          
          View this message in context: Re: SQLite
            error 
          
            
              Sent from the Mono for
                Android mailing list archive  at Nabble.com. 
            
          
          
          _______________________________________________ 
          Monodroid mailing list 
          [hidden email] 
          
          UNSUBSCRIBE INFORMATION: 
          http://lists.ximian.com/mailman/listinfo/monodroid 
          
        
      
      
      
      
      
      -- 
      Gonçalo Oliveira 
      
      _______________________________________________
      
      Monodroid mailing list
      
      [hidden email] 
      
      
      UNSUBSCRIBE INFORMATION:
      
      http://lists.ximian.com/mailman/listinfo/monodroid 
      
      
      
      
        If you reply to this email, your
          message will be added to the discussion below: 
        
http://mono-for-android.1047100.n5.nabble.com/SQLite-error-tp5709898p5709909.html
 
      
      
        To unsubscribe from SQLite error, click
          here . 
        NAML  
    
  



--
View this message in context: 
http://mono-for-android.1047100.n5.nabble.com/SQLite-error-tp5709898p5709911.html
Sent from the Mono for Android mailing list archive at Nabble.com.
_______________________________________________
Monodroid mailing list
[email protected]

UNSUBSCRIBE INFORMATION:
http://lists.ximian.com/mailman/listinfo/monodroid

Reply via email to