繁体   English   中英

从新应用程序访问现有数据库

Access the existing Database from new application

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我已经使用特定的应用程序在外部存储中创建了数据库,并使用同一应用程序创建了表。现在我想从新的android应用程序访问该数据库中的数据,因此我必须使用内容提供程序,否则我可以直接访问数据库不使用内容提供程序? 请帮忙!

listView.setOnItemClickListener(new OnItemClickListener() {

        private static final int DATABASE_VERSION = 5;
        private static final String UID = "_id";
        private static final String STEP = "Steps";
        private static final String ImagePath = "Image_Path";
        private static final String AudioPath = "Audio_Path";


        @Override
        public void onItemClick(AdapterView<?> parent, View view,
                int position, long id) {
            // TODO Auto-generated method stub
            Message.message(KitchenData.this, "Click List Item Number");
            SQLiteDatabase db = openOrCreateDatabase("/mnt/sdcard/Kitchen_Data.db",
                    MODE_MULTI_PROCESS, null);


            try
            {
String CREATE_TABLE = "CREATE Table " + li.get(position) + "("+ UID + " INTEGER PRIMARY KEY AUTOINCREMENT ," + STEP+ " VARCHAR(255) NOT NULL ,"+ImagePath+" VARCHAR(255) NOT NULL,"+AudioPath+" VARCHAR(255) NOT NULL); ";
            db.execSQL(CREATE_TABLE);
             pos=li.get(position);
            }catch(SQLException e)
            {
                Message.message(KitchenData.this,"Errors in creating table "+e);
            }
1 个回复
private static String DB_NAME ="YourDbName";// Database name 

DB_NAME此处是您的数据库的名称。 假定您在资产文件夹中有数据库的副本,因此例如,如果您的数据库名称是mbDB,则DB_NAME的值将是mbDB。

private static String DB_NAME ="ordersDB";

将数据库复制到程序中的ASSETS文件夹中。

将以下代码放在Dbhelper类中,然后在CreateDatabase函数中调用它。

private void copyDataBase() throws IOException
{
    InputStream mInput = mContext.getAssets().open(DB_NAME);
    String outFileName = DB_PATH + DB_NAME;
    OutputStream mOutput = new FileOutputStream(outFileName);
    byte[] mBuffer = new byte[1024];
    int mLength;
    while ((mLength = mInput.read(mBuffer))>0)
    {
        mOutput.write(mBuffer, 0, mLength);
    }
    mOutput.flush();
    mOutput.close();
    mInput.close();
}

希望这是您需要的答案:)

1 在新应用程序中访问现有数据库

我已经创建了需要创建数据库并存储数据的android应用程序(app 1)。现在我创建了另一个android应用程序(app 2),该应用程序需要访问先前创建的数据库(在app1中)。 如何从应用程序2访问应用程序1中的数据库 ...

5 将现有的访问表单复制到新数据库

我希望将一些Access表单(从现有数据库)复制到新的空数据库,然后将它们链接到后端SQL Server中的表。 我希望复制的表单当前已链接到后端SQL Server中的几个表,我需要将它们与现有表断开链接,并将它们链接到服务器中的新表。 我试图将表单导入到新数据库中,然后在设计视图中将“记 ...

6 带有新Rails应用程序的现有数据库

我在flask使用了一个存在于postgresql名为exam_prep数据库。 我已经创建了一个新的Rails应用程序,并且希望将其与该数据库一起使用。 到目前为止,我已经运行rake db:structure:dump ,它在db文件夹下创建了一个structure.sql 。 ...

9 在新的Java应用程序中没有完整的实体结构的情况下,从现有数据库中提取信息的最佳方法是什么?

我所涉及的当前应用程序有点像一个怪物,它具有非常复杂的实体结构,并且与Seam框架紧密耦合。 在几周后,我将开始重构这个整体,但是在此之前,我需要创建一个小型应用程序,该应用程序将从连接到怪物应用程序的数据库中收集一些信息并将其导出。 我的问题是实体结构一团糟,将其重构为单独的模块不 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM