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?