标签: android-sqlite

我尝试获取SQLite数据时的StringIndexOutOfBoundsException

当我尝试从我的Activity中的数据库SQLite获取数据时

DataBaseAdapterCars mDbHelper = new DataBaseAdapterCars(this);
        mDbHelper.createDatabase();
        mDbHelper.open();

        Car[] carsList= mDbHelper.getDataDBCarsArray(uso, eta,
        category, class);
Run Code Online (Sandbox Code Playgroud)

我收到这个错误

12-10 17:14:47.069: E/AndroidRuntime(17936): FATAL EXCEPTION: main
12-10 17:14:47.069: E/AndroidRuntime(17936): java.lang.StringIndexOutOfBoundsException
12-10 17:14:47.069: E/AndroidRuntime(17936):    at android.app.ContextImpl.validateFilePath(ContextImpl.java:1649)
12-10 17:14:47.069: E/AndroidRuntime(17936):    at android.app.ContextImpl.openOrCreateDatabase(ContextImpl.java:555)
12-10 17:14:47.069: E/AndroidRuntime(17936):    at android.content.ContextWrapper.openOrCreateDatabase(ContextWrapper.java:203)
12-10 17:14:47.069: E/AndroidRuntime(17936):    at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:118)
12-10 17:14:47.069: E/AndroidRuntime(17936):    at android.database.sqlite.SQLiteOpenHelper.getReadableDatabase(SQLiteOpenHelper.java:187)
12-10 17:14:47.069: E/AndroidRuntime(17936):    at com.my.app.db.DataBaseHelper.createDataBase(DataBaseHelper.java:36)
12-10 17:14:47.069: E/AndroidRuntime(17936):    at com.my.app.db.DataBaseAdapterCars.createDatabase(DataBaseAdapterCars.java:42)
12-10 17:14:47.069: E/AndroidRuntime(17936):    at com.my.app.Cars.initializeData(Cars.java:111)
12-10 17:14:47.069: E/AndroidRuntime(17936):    at com.my.app.Cars$MyAsync$1.run(Cars.java:156)
12-10 17:14:47.069: E/AndroidRuntime(17936):    at android.os.Handler.handleCallback(Handler.java:587)
12-10 17:14:47.069: E/AndroidRuntime(17936):    at android.os.Handler.dispatchMessage(Handler.java:92) …
Run Code Online (Sandbox Code Playgroud)

sqlite android indexoutofboundsexception android-sqlite

0
推荐指数
1
解决办法
1071
查看次数

主键自动增量无法在android数据库上运行?

  public static final String Database_Name="content.db";
public static final int Database_Version=1;
public static final String Table_Name="images";
public static final String Column1="contentid";
public static final String Column2="content_type";
public static final String Column3="content";
public static final String Column4="has_update";
public static final String Column5="server";
public static final String Column6="_id";
public static final String Create_Database = 
        "CREATE TABLE " + Table_Name +
                " (" + Column6 + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
                Column1 + " LONG, " + 
                Column2 + " TEXT NOT …
Run Code Online (Sandbox Code Playgroud)

android android-sqlite

0
推荐指数
1
解决办法
4966
查看次数

将ArrayList <Map <String,String >>保存到SQLite数据库?

我有一个包含a 的Fragment被叫.其中的项目由另一个叫做的类添加.我想要做的是在项目添加到列表时保存列表.(目前,我的列表中的视图只是s,但后来我希望向它们添加图像,并且有多行等等,所以这些也需要保存).我的列表是:它被调用.HistoryFragmentListViewListViewDataModelTextViewArrayList<Map<String, String>>mPlanetList

我认为保存到a SQLiteDataBase是解决方案,但即使在阅读了多个答案/教程后看起来也很复杂.

我看过的一些网站:

http://www.vogella.com/articles/AndroidSQLite/
http://developer.android.com/guide/topics/data/data-storage.html#db
http://stackoverflow.com/q/5482402/2442638
http://stackoverflow.com/q/3142285/2442638
Run Code Online (Sandbox Code Playgroud)

这个"问题"中有很多问题,但我的主要问题分为两部分:

a)是DataBase正确的解决方案吗?

- >如果'是' - > b)制作一个简单的方法是什么?我宁愿不使用JSON/GSON

- >如果'不' - > c)我应该使用什么? SharedPreferences

假设a DataBase是正确的解决方案,我想我需要序列化我的arraylist或者可能使用StringSet - 我不知道怎么做,因为我有这样的arraylist:ArrayList<Map<String, String>> 而不是没有map对象的arraylist.

此外,我试图从我的DataModel类访问我的数据库(因为这是我将我的项目添加到列表中),但我无法让它工作.

我已经添加了我当前的代码 - 数据库的工作还没有完成,但我仍然坚持下一步该做什么.

这是我的HistoryFragment班级:

// Remove imports

public class HistoryFragment extends FragmentBase implements OnItemAddedHandler {
// FragmentBase is just another class which extends Fragment and the moment.

    ListView lv;
    SimpleAdapter simpleAdpt; …
Run Code Online (Sandbox Code Playgroud)

android android-listview android-sqlite

0
推荐指数
1
解决办法
5252
查看次数

使用SQLite更新密码

我正在使用SQLite开发一个应用程序.我的要求是我想更新表格中的密码.

我写了一个更新查询,但它无法正常工作.错误:

android.database.sqlite.SQLiteException: unrecognized token: "' WHERE username = ?": , 
while compiling: UPDATE TABLE_USER SET password = god' WHERE username = ?` condition.   
Run Code Online (Sandbox Code Playgroud)

代码:

UserDaoImpl.java

public void  updateEntry(String newPassword,String name)
 {
    Cursor cur= myDB.rawQuery("UPDATE "+UserDBHandler.USER_TABLE+" SET    
 "+UserDBHandler.PASSWORD+" = "+newPassword+"' WHERE "+ 
                   UserDBHandler.USER_NAME+" = ?",new String[]{name});  
 }       

  ChangePasswordActivity.java


public class ChngePasswordActivity extends Activity {

  private EditText oldPwdEdit;
  private EditText newPwdEdit;
  private EditText cnfrmEdit;

  private Button submitBtn;

  private String oldPwd;
  private String newPwd;
  private String cnfrmPwd;

  private UserDaoImpl userDetalsIml;

  @Override
  protected …
Run Code Online (Sandbox Code Playgroud)

android android-sqlite

0
推荐指数
1
解决办法
2463
查看次数

错误:sqlite返回:错误代码= 1,msg =没有这样的表

我正在开发一个小应用程序,它将位置纬度和经度存储在SQLite数据库中.我有三个课程如下:

AddPlaceActyivity.java

import android.app.Activity;
import android.app.Fragment;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

import com.example.rememberthislocation.R;




public class AddPlaceActivity extends Activity{

    Button btn_remember,btn_maps;
    Fragment fr;
    Button addlocation;
    EditText locationname;
    String mylocationname,mylatitude,mylongitude;

    @Override
     protected void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        Log.d("my","In oncreateview");

        setContentView(R.layout.remember_fragment);


                addlocation = (Button)findViewById(R.id.btn_addlocation);
                 locationname = (EditText)findViewById(R.id.locationname);


                  mylocationname = locationname.getText().toString();
                     Log.d("my","value 1 taken");

                    mylatitude = "0.0";
                    mylongitude = "0.0";

                      Log.d("my", "data values taken"); 


                  addlocation.setOnClickListener(new View.OnClickListener() {

                    @Override
                    public void onClick(View v) {
                        // TODO Auto-generated method stub
                        MySqliteHelper db …
Run Code Online (Sandbox Code Playgroud)

java sqlite android android-sqlite

0
推荐指数
1
解决办法
1383
查看次数

Android:NullPointerException无法将数据库加载到片段中的listview中

我一直在寻找一段时间来试图找到如何使用MySQLite数据库中的信息填充列表视图.现在当我想到我终于找到了一些信息时,我想出了NullPointers.

这是我的代码(HomeFragment.java):

package zygs.com.seniorproject.fragments;

import android.app.Fragment;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;

import java.util.ArrayList;
import java.util.List;

import zygs.com.seniorproject.R;
import zygs.com.seniorproject.database.DatabaseHandler;
import zygs.com.seniorproject.database.Inventory;

public class HomeFragment extends Fragment {

// Initializing Variables
Button Item_Button;
Button Display_Button;
EditText Box_Item_Des;
EditText Box_Item_Quant;
EditText Box_Item_ID;
final DatabaseHandler db = new DatabaseHandler(getActivity());


public HomeFragment(){}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

    setHasOptionsMenu(true);

    final View …
Run Code Online (Sandbox Code Playgroud)

android android-listview android-fragments android-sqlite android-fragmentactivity

0
推荐指数
1
解决办法
1万
查看次数

错误:没有这样的表:在Sqlite数据库中插入数据时

我正在尝试插入数据sqlite Database.我正在按照Youtube教程执行此任务.

我编写了以下代码并成功创建Sqlite Database file但是当我尝试插入数据时,它会给出错误消息.

我写了以下代码.请指导我在这里做错了什么.

public class DatabaseHelper extends SQLiteOpenHelper {

    public static final String DATABASE_NAME="ep";  
    public static final String TABLE_NAME= "transactionsHistory";
    public static final String ID= "ID";
    public static final String MESSAGE= "MESSAGE";
    public static final String CREATE_TABLE= "create table "+ TABLE_NAME + " ( "+ID+" INTEGER PRIMARY KEY AUTO INCREMENT, "+MESSAGE+" TEXT)";
    public static final String DROP_TABLE= "DROP TABLE IF EXISTS"+ TABLE_NAME; 
    private Context context;


    public DatabaseHelper(Context context) {
        super(context, DATABASE_NAME, …
Run Code Online (Sandbox Code Playgroud)

sql sqlite android android-sqlite

0
推荐指数
1
解决办法
921
查看次数

在从服务器数据更新之前,我应该从表sqlite中删除数据吗?

这是我第一次打开活动时在我的应用程序上执行的逻辑:

  1. 当主要活动打开时,检查网络是否可用.
  2. 如果网络已连接,则从服务器获取数据,然后保存到sqlite.如果网络不可用,则显示用户需要连接网络的Toast alert,

主要活动的逻辑第二次打开

  1. 检查网络是否可用.
  2. 如果已连接网络,则从服务器获取数据.现在我也想在sqlite上保存新数据,但sqlite数据现在包含旧数据.我应该首先删除表中的所有旧数据,然后从服务器插入新数据吗?如果不删除并继续将新数据插入sqlite,该表将复制数据,我该如何解决?

对不起,我的英文或问题是重复的.我只是找到了一种从服务器上获取数据的最佳方法.非常感谢,如果有人给我一个如何处理它的例子.

java android android-sqlite

0
推荐指数
1
解决办法
393
查看次数

什么时候写我的数据库

我有一个使用SQLite的android Activity,在Activity中,用户可以进行更改,这些更改会影响存储在DB中的数据.

我想知道什么是更好的:在创建数据库时写入更改,或者将所有这些更改保存在一个List中,并在OnStop方法(在活动结束时)的DB中写入所有内容.

database sqlite android android-activity android-sqlite

0
推荐指数
1
解决办法
55
查看次数

如何在会议室数据库中添加主键?

我有一个sqlite数据库,我想将数据库更改为Room database

表之一没有任何主键,只有两个外键。

我使用以下查询在房间之前创建了表:

CREATE TABLE student_performance(
class_id int , 
student_id char(10), 
class_date date , 
absent boolean DEFAULT 0, 
delay boolean DEFAULT 0, 
positive int DEFAULT 0, 
negative int DEFAULT 0, 
quiz float ,
FOREIGN KEY (student_id , class_id) REFERENCES student(student_id , class_id) 
ON DELETE CASCADE 
ON UPDATE CASCADE);
Run Code Online (Sandbox Code Playgroud)

现在我为房间定义表:

@Entity(tableName = "performance",
    foreignKeys = {@ForeignKey(
            entity = StudentEntry.class,
            parentColumns = {CLASS_ID, STUDENT_ID},
            childColumns = {CLASS_ID, STUDENT_ID},
            onDelete = CASCADE, onUpdate = CASCADE)})
public class PerformanceEntry {
    . …
Run Code Online (Sandbox Code Playgroud)

android android-sqlite android-database android-room

0
推荐指数
1
解决办法
71
查看次数