কীভাবে প্রোগ্রাম থেকে অ্যান্ড্রয়েড থেকে এসকিউএল ডাটাবেস মুছবেন to


151

আমি Android file systemপ্রোগ্রাম থেকে ডাটাবেস ফাইল মুছতে চাই ? আমার কাছে কি শেল স্ক্রিপ্ট লঞ্চ হতে পারে adbযা অ্যানড্রয়েড স্পেসে ডেটাবেস মুছতে শেল স্ক্রিপ্ট চালায়? আমি কি কোনও JUnitপরীক্ষার কেস ( system()কল দিয়ে) এর মধ্যে থেকে এই কাজটি করতে পারি ?

আমি কীভাবে অ্যান্ড্রয়েডে একটি সম্পূর্ণ ডাটাবেস মুছব? আমার পুরো জিনিসটি সরিয়ে নেওয়া দরকার যাতে আমি ডাটাবেস তৈরির পরীক্ষা করতে পারি। আমি টেবিলগুলি ফেলে দিতে পারি, তবে এটি যথেষ্ট নয়। এটি এমুলেটরটিতে রয়েছে, কোনও ফোনে নয়।

উত্তর:


410

আপনার কনটেক্সট হয়ে গেলে এবং ডাটাবেসের নাম জানার পরে ব্যবহার করুন:

context.deleteDatabase(DATABASE_NAME);

এই লাইনটি চালিত হয়ে গেলে, ডাটাবেসটি মুছে ফেলা উচিত।


14
মুছে ফেলার আগে আপনি সমস্ত ডাটাবেস সংযোগগুলি বন্ধ করে রেখেছেন তা নিশ্চিত করুন। অন্যথায় আপনাকে অ্যাপ্লিকেশনটি পুনরায় চালু করতে হবে।
জে সোয়ার

সহজ এবং দরকারী ... ধন্যবাদ!
মার্কো এস্পিনোজা

13

আপনার শেল থেকে এটি সহজেই টাইপ করুন:

adb shell
cd /data/data
cd <your.application.java.package>
cd databases
su rm <your db name>.db

আমি বার্তাটি ফিরে পেয়েছি "মাইডাটাবেস.ডিবি এর জন্য আরএম ব্যর্থ হয়েছে, অনুমতি অস্বীকৃত"। এটি কাজ করার জন্য আপনার অবশ্যই একটি রুট ফোন থাকা উচিত? বা কোনও অনুমতি নির্দিষ্ট করার কোনও উপায় আছে? বা এটি কেবল এমুলেটরটিতে কাজ করে?
পিটএইচ

2
@ পেটএইচ এমুলেটরে আপনার অনুমতি লাগবে না, তবে আসল ডিভাইসের জন্য আপনাকে রুট করা দরকার
বার্মেলি রেড স্টার

9
এটির জন্য মূল প্রয়োজন এবং এটি প্রোগ্রামিকভাবে নয়
জো

আমার জন্য এটির জন্য কোনও বিশেষ সেটআপের প্রয়োজন হয়নি। আমি নিশ্চিত বলতে চাই যে, আমি স্বয়ংক্রিয়ভাবে রুট হিসাবে লগইন করেছি, তবে সবকিছুই কাজ করেছে :)
vlad-ardelean

ঠিক আছে আমি এখানে আছি. root@generic_x86:/data/data/com.dslomer64.servyhelperton/databases #। , অপসারণ কপি এবং অন্যান্য বিষয় ছাড়াও, একটি নয় dirবা list filesবা what the heck is in this directory/folderকমান্ড?
DSlomer64

12

এসকিউএলডিট ডাটাবেস.ডিলেটড্যাটাস ডাটাবেস (ফাইল ফাইল) স্ট্যাটিক পদ্ধতিটি এপিআই 16 এ যুক্ত করা হয়েছিল? আপনি যদি পুরানো ডিভাইসগুলিকে সমর্থন করে এমন অ্যাপ্লিকেশন লিখতে চান তবে আপনি কীভাবে এটি করবেন?

আমি চেষ্টা করেছি: file.delete ();

তবে এটি এসকিউএলওপেনহেল্পারকে গণ্ডগোল করে।

ধন্যবাদ।

কিছু মনে করো না! আমি পরে বুঝতে পেরেছি আপনি কনটেক্সট .ডিলেটডেটাবেস () ব্যবহার করছেন । প্রসঙ্গটি এক দুর্দান্ত কাজ করে এবং জার্নালটিও মুছে দেয়। আমার জন্য কাজ কর.

এছাড়াও, আমি ডিলিটটি করার আগে আমার এসকিউএলওপেনহেল্পক্লোজ () কল করার দরকার পড়েছিল, যাতে আমি এটি পুনরায় তৈরি করতে লোডারম্যানেজারটি ব্যবহার করতে পারি।


11

চেষ্টা করুন:

this.deleteDatabase(path); 

অথবা

context.deleteDatabase(path);

6

Eclipse থেকে আপনি ডিডিএমএস ব্যবহার করতে পারেন যা এটি সত্যই সহজ করে তোলে।

আপনার ইমুলেটরটি চলমান রয়েছে তা নিশ্চিত করুন, এবং তারপরেই Eclipse এ DDMS দৃষ্টিভঙ্গিতে স্যুইচ করুন। ফাইল এক্সপ্লোরারে আপনার সম্পূর্ণ অ্যাক্সেস থাকবে যা আপনাকে প্রবেশ করতে এবং সহজেই পুরো ডাটাবেসটি মুছতে দেয়।


1
এটি কি প্রকৃত ফোন ডিভাইসটির সাথে কাজ করে? ডিডিএমএস মোডে দেখার সময় আমি ডেটা ফোল্ডারের অধীনে কোনও সাবফোল্ডার দেখতে পেলাম না।
সাম্মিওয়ে

1
কিন্তু এই প্রশ্নটি প্রোগ্রামটিমেটিকভাবে ডাটাবেস মুছে ফেলা সম্পর্কে?
সাইমন

6
context.deleteDatabase("database_name.db");

এটি কাউকে সাহায্য করতে পারে। আপনাকে অন্যথায় এক্সটেনশনটি উল্লেখ করতে হবে, এটি কার্যকর হবে না।


3

context.deleteDatabase (DATABASE_NAME); সমস্ত সংযোগ বন্ধ থাকলেই ডাটাবেস মুছবে। আপনি যদি আপনার ডাটাবেস সহায়ককে পরিচালনা করার জন্য সিঙ্গলটন উদাহরণ বজায় রাখছেন - খোলা সংযোগটি বন্ধ করা সহজ।

ডাটাবেসহেল্পার সরাসরি ইনস্ট্যান্ট করে একাধিক জায়গায় ব্যবহৃত হয়, মুছে ফেলুন ডেটাবেস + কিলপ্রসেস কিছু সংযোগ খোলা থাকলেও কাজটি করবে। অ্যাপ্লিকেশন দৃশ্যে অ্যাপ পুনরায় চালু করতে কোনও সমস্যা না থাকলে এটি ব্যবহার করা যেতে পারে।


3

অ্যাপটি আনইনস্টল করার সময় পুরানো ডিবি মুছুন।

সেট অ্যান্ড্রয়েড allowBackup = "FALSE" অ্যাপ্লিকেশন ট্যাগে Andro আইডি সমস্যা সংশোধন। দেখে মনে হচ্ছে যে অদ্ভুত কারণে অ্যান্ড্রয়েড ওএস প্রতিবার অ্যাপটি মোতায়েন করে ব্যাকআপ থেকে পুনরুদ্ধার করছিল।


3

আপনি বর্তমান ডাটাবেস পাথের একটি ফাইল অবজেক্ট তৈরি করতে পারেন এবং তারপরে আমরা ফোল্ডার থেকে ফাইলটি মোছার সাথে সাথে এটি মুছতে পারেন

    File data = Environment.getDataDirectory();
    String currentDBPath = "/data/com.example.demo/databases/" + DATABASE_NAME;
    File currentDB = new File(data, currentDBPath);
    boolean deleted = SQLiteDatabase.deleteDatabase(currentDB);

0

আমি অ্যান্ড্রয়েড ডাটাবেস মুছার পদ্ধতি এবং ডেটাবেস সফলভাবে মুছে ফেলা করেছি

public bool DeleteDatabase()
        {
            var dbName = "TenderDb.db";
            var documentDirectoryPath = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal);
            var path = Path.Combine(documentDirectoryPath, dbName);
            return Android.Database.Sqlite.SQLiteDatabase.DeleteDatabase(new Java.IO.File(path));
        }

0

আমি সম্পত্তিতে ডাটাবেসের কাঠামো পরিবর্তন করার পরে ডিভাইসে ডাটাবেসের "ফর্ম্যাট" করার জন্য আমি নিম্নলিখিতটি ব্যবহার করেছি। যখন আমি চেয়েছিলাম যে সম্পদগুলি থেকে আবার ডেটাবেসটি পড়তে হবে তখন আমি মেইনএ্যাকটিভিটিতে লাইনটি সহজভাবেই সঙ্কোচিত করি। এটি সম্পদ ফোল্ডারে প্রোকাসড ডাটাবেসের সাথে ডিভাইস ডাটাবেস মান এবং কাঠামোটিকে পুনরায় সেট করবে will

    //database initialization. Uncomment to clear the database
    //deleteDatabase("questions.db");

এরপরে, আমি একটি বোতাম প্রয়োগ করব যা মুছে ফেলুন ডেটাবেস চালাবে যাতে ব্যবহারকারী গেমটিতে তার অগ্রগতি পুনরায় সেট করতে পারে।


-2

অ্যাপ্লিকেশন পরিচালক থেকে, আপনি ডেটা সহ পুরো অ্যাপ্লিকেশন মুছতে পারেন। অথবা এটি নিজেই ডেটা। এর মধ্যে ডাটাবেস অন্তর্ভুক্ত রয়েছে।

  1. সেটিংসে নেভিগেট করুন। আপনি আপনার অ্যাপ্লিকেশন মেনুতে বা বেশিরভাগ ফোনে বিজ্ঞপ্তি ড্রয়ারটি নীচে টেনে এবং সেখানে বোতামটি আলতো চাপ দিয়ে সেটিংস মেনুতে যেতে পারেন।

  2. অ্যাপ্লিকেশন সাবমেনু নির্বাচন করুন। কিছু ফোনে এই মেনুটির অ্যাপ্লিকেশন ম্যানেজারের মতো কিছুটা আলাদা নাম থাকবে।

  3. সমস্ত অ্যাপ্লিকেশন তালিকার ডানদিকে সোয়াইপ করুন। চলমান এবং ডাউনলোড করা অ্যাপ্লিকেশনগুলির তালিকা উপেক্ষা করুন। আপনি সমস্ত অ্যাপ্লিকেশন তালিকা চান।

  4. আপনি যে অ্যাপটি অক্ষম করতে চান তা নির্বাচন করুন। উপরের বাম দিকে ফোর্স স্টপের বোতাম এবং অন্যদিকে উপরের ডানদিকে আপডেটগুলি অক্ষম করুন বা আনইনস্টল করুন এমন একটি বৈশিষ্ট্য পর্দা প্রদর্শিত হবে।

  5. ডেটা মুছুন।


8
ওপি প্রগ্রেমেটিকভাবে ড । সেটিংসে গিয়ে একটি বোতাম হিট করা কর্মসূচী হিসাবে নয় is
এমএমকিং

@ মিমিং আমি বিষয়টি অবগত ছিলাম। এটি কেবলমাত্র টেবিল এবং সামগ্রী নয় ডাটাবেস অপসারণের সবচেয়ে সহজ ওয়া wa তিনি বলেছিলেন যে ডাটাবেস তৈরির পরীক্ষা করার জন্য তার এটির প্রয়োজন এবং এটি এটি করে। আমি একই জিনিসটি সন্ধান করছি এবং সে জন্য স্থির হয়েছি।
f470071
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.