0

Hola amigos quiero hacer una base de datos local con SQLite y todo bien con mi primera tabla, pero ahora estoy tratando de generar y llamar datos a una nueva tabla, cuando trato de insertar o llamar datos de mi tabla me aparece este error.

Object Reference not set to an Instance of an object

este es metodo donde me tira el error:

public partial class MainPage: ContentPage {
  public Users user;
  public UserDb userDb;
  public Visitas v;
  public VisitasDb visitasDb;
  //public SQLiteConnection conn;
  public MainPage() {
    InitializeComponent();
    userDb = new UserDb();
    var users = userDb.GetMembers();
    userView.ItemsSource = users;

 

  }

  public async Task btnAddUser_Clicked(object sender, EventArgs e) {
    if (string.IsNullOrEmpty(email_.Text)) {
      await DisplayAlert("Error", "Ingrese un mail", "ok");
      email_.Focus();
    }
    if (string.IsNullOrEmpty(pass_.Text)) {
      await DisplayAlert("Error", "Ingrese una password", "ok");
      pass_.Focus();
    } else {

      try {
        user = new Users();
        user.email = email_.Text;
        user.pass = pass_.Text;
        Random rnd = new Random();
        user.id = rnd.Next(20);
        userDb.AddMember(user);
        var usersX = userDb.GetMembers();
        userView.ItemsSource = usersX;

      } catch (Exception ex) {

        await DisplayAlert("Error", "Error : " + ex.ToString(), "ok");
      }
    }
  }

  

  private async void btnAddVisit_Clicked(object sender, EventArgs e) {
    if (string.IsNullOrEmpty(data1_.Text)) {
      await DisplayAlert("Error", "Ingrese un mail", "ok");
      data1_.Focus();
    }
    if (string.IsNullOrEmpty(data2_.Text))

    {
      await DisplayAlert("Error", "Ingrese una password", "ok");
      data2_.Focus();
    } else {
      try {
        v = new Visitas();
        v.dato1 = data1_.Text;
        v.dato2 = data2_.Text;
        v.dato3 = data2_.Text;
        Random rnd = new Random();
        v.id = rnd.Next(20);
        visitasDb.AddMember(v); // el error esta justo aqui cuando quiero ejecutar mi bd de vistas
        var vis = visitasDb.GetMembers();
        visitsView.ItemsSource = vis;

      } catch (Exception ex) {
        Console.WriteLine("ERROR!!____________---------------------" + ex.ToString());
        await DisplayAlert("Error", "Error : " + ex.ToString(), "ok");
      }
    }
  }
}

En mi metodo btnAddUser_Clicked hago lo mismo apuntando a una base de datos diferente y no obtengo ese error

Aqui les dejo mis 2 bases de datos de SQLite

//usuarios

public class UserDb
    {
        private SQLiteConnection conn;
        public UserDb() {
            conn = DependencyService.Get<ISQLite>().GetConnection();
            conn.CreateTable<Users>();
        }


        public IEnumerable<Users> GetMembers()
        {
            var members = (from mem in conn.Table<Users>() select mem);
            return members.ToList();
        }

        public string AddMember(Users member)
        {
            try
            {
                conn.Insert(member);
                return "success baby bluye ;*";
            }
            catch (Exception ex)
            {

                return ex.ToString();
            }

        }

        public void DeleteMember(int ID)
        {
            conn.Delete<Users>(ID);
        }

        public void DropTbMember()
        {
            conn.DropTable<Users>();
        }
    }
    
    
    // Visitas
    
    
           public class VisitasDb
        {
        private SQLiteConnection conn;

        public VisitasDb() {

                conn = DependencyService.Get<ISQLite>().GetConnection();
                conn.CreateTable<Visitas>();
            }


        public IEnumerable<Visitas> GetMembers()
        {
            var members = (from mem in conn.Table<Visitas>() select mem);
            return members.ToList();
        }

        public string AddMember(Visitas member)
        {
            try
            {
                conn.Insert(member);
                return "success baby bluye ;*";
            }
            catch (Exception ex)
            {

                return ex.ToString();
            }

        }

        public void DeleteMember(int ID)
        {
            conn.Delete<Visitas>(ID);
        }

        public void DropTbMember()
        {
            conn.DropTable<Visitas>();
        }

    }

, alguien me puede decir porque esta pasando esto?

E.Rawrdríguez.Ophanim
  • 1,185
  • 5
  • 26
  • 72

0 Answers0