Hey merhaba ziyaretçi bize destek olmak ister misin ? Hemen Kayıt Ol Seni hiç sıkmadan kayıt edeceğiz endişelenmek bize destek olduğun için teşekkürler.



  • Toplam: 0 Oy - Ortalama: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Android'de Sqlite kullanımı
#1
Selam arkadaşlar,

Sqlite veritabanı kullandığım bir projem var. Editörde veritabanı çalışıyor fakat android'de çalışmıyor.

"Unable to open the database file" hatası veriyor.
  Cevapla
#2
Database kitletmiş olabilir o yüzden açılamıyordur hatanın daha uzun bir açıklaması var mı ?
Bir gün her şey kodlanacak ... Idea

resim
  Cevapla
#3
Yok malesef. Daha fazla ayrıntıya nasıl ulaşılıyor.
  Cevapla
#4
Android'de hata veriyor derken build aldıktan sonra mı hata alıyorsun tam olarak o kısmı anlamadım.
Bir gün her şey kodlanacak ... Idea

resim
  Cevapla
#5
Evet apk yı telefona yukledikten sonra uygulama veritabanına bağlanmaya çalışınca bu hatayı veriyor. Editörde normal çalışıyor.
  Cevapla
#6
Kodlarda ki SQL bölümünü buraya atabilir misin inceleyebilmemiz için.
Bir gün her şey kodlanacak ... Idea

resim
  Cevapla
#7
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Mono.Data.Sqlite;
using System.Data;
using System;

public class Db : MonoBehaviour
{
    private string conn, sqlQuery;
    IDbConnection dbconn;
    IDbCommand dbcmd;
    // Use this for initialization
    void Awake()
    {
        conn = "URI=file:" + Application.dataPath + "/StreamingAssets/LocalDb.s3db"; //Path to database.

        //Deletvalue(6);
        //insertvalue("ahmedm", "ahmedm@gmail.com", "sss");
        //Updatevalue("a", "w@gamil.com", "1st", 1);
        //readers();
    }

    private void insertvalue(string name, string email, string address)
    {
        using (dbconn = new SqliteConnection(conn))
        {
            dbconn.Open(); //Open connection to the database.
            dbcmd = dbconn.CreateCommand();
            sqlQuery = string.Format("insert into SpecialWords (Name, Email, Address) values (\"{0}\",\"{1}\",\"{2}\")", name, email, address);// table name
            dbcmd.CommandText = sqlQuery;
            dbcmd.ExecuteScalar();
            dbconn.Close();
        }
    }
    private void Deletvalue(int id)
    {
        using (dbconn = new SqliteConnection(conn))
        {
            dbconn.Open(); //Open connection to the database.
            dbcmd = dbconn.CreateCommand();
            sqlQuery = string.Format("Delete from SpecialWords WHERE ID=\"{0}\"", id);// table name
            dbcmd.CommandText = sqlQuery;
            dbcmd.ExecuteScalar();
            dbconn.Close();
        }
    }


    private void Updatevalue(string name, string email, string address, int id)
    {
        using (dbconn = new SqliteConnection(conn))
        {

            dbconn.Open(); //Open connection to the database.
            dbcmd = dbconn.CreateCommand();
            sqlQuery = string.Format("UPDATE SpecialWords set Name=\"{0}\", Email=\"{1}\", Address=\"{2}\" WHERE ID=\"{3}\" ", name, email, address, id);// table name
            dbcmd.CommandText = sqlQuery;
            dbcmd.ExecuteScalar();
            dbconn.Close();
        }
    }


    public ItemContainer readers()
    {
        using (dbconn = new SqliteConnection(conn))
        {
            dbconn.Open(); //Open connection to the database.
            dbcmd = dbconn.CreateCommand();
            sqlQuery = "SELECT * " + "FROM SpecialWords";// table name
            dbcmd.CommandText = sqlQuery;
            IDataReader reader = dbcmd.ExecuteReader();
            ItemContainer ic=new ItemContainer();
            Item item=new Item();
            while (reader.Read())
            {
                int id = reader.GetInt32(0);
                string wordEng = reader.GetString(1);
                string wordTr = reader.GetString(2);
                //string Phone = reader.GetString(3);
                item.wordEng = wordEng;
                item.wordTr = wordTr;
                ic.items.Add(item);
                //Debug.Log("value= " + id + "  Eng =" + wordEng + "  Tr =" + wordTr);
            }

            for (int i = 0; i < ic.items.Count; i++)
            {
                Debug.Log("  Eng =" + ic.items[i].wordEng + "  Tr =" + ic.items[i].wordTr);
            }

            reader.Close();
            reader = null;
            dbcmd.Dispose();
            dbcmd = null;
            dbconn.Close();
            dbconn = null;
            return ic;
        }
    }

    // Update is called once per frame
    void Update()
    {

    }
}
  Cevapla
#8
Çok fazla sql kodu var  hatanın nereden kaynaklandığını bulmak için önce sadece DB'ye open yaparak düzgün şekilde açabiliyor mu diye kontrol et daha sonrasında diğer işlemleri kontrol et genelde Update'de yada Insert işlemlerinde bu hatalar çıkıyor onu kontrol eder misin ?.
Bir gün her şey kodlanacak ... Idea

resim
  Cevapla
#9
Tamam tekrar deneyeceğim. Şu an sadece veritabanından veri okuma işlemi yapıyorum.

En basit sql sorgusuyla denedim yine aynı hatayı veriyor. Database i StreamingAsset klasörune oluşturdum. Zaten dosyayı bulamadım demiyor açamıyorum diyor. Unity'nin forumunda da baya araştırdım ama çözemedim. Takıldımı takılıyor bazen Smile
  Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Android build'de fps sorunu.. ManWalkinInRain 6 120 17-10-2019, Saat: 14:49
Son Yorum: ManWalkinInRain
  Android Resolver Problem Cem 1 195 16-05-2019, Saat: 17:25
Son Yorum: Eyelay
  Unity if else Kullanımı Enesk001 1 230 23-04-2019, Saat: 14:11
Son Yorum: abayir41
Question Unity VideoPlayer eski android sürümlerindeki sorun deliktekitavsan 1 408 07-10-2018, Saat: 13:46
Son Yorum: mtat0640
  Android Manifest Hatası Carbon902 4 1,110 03-04-2018, Saat: 22:53
Son Yorum: Carbon902

Hızlı Menü:


Konuyu Okuyanlar: 1 Ziyaretçi