Форум программистов, компьютерный форум CyberForum.ru

2 таблицы в одном базе данных не могу создать - Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Android LocationManager network_provider troubles http://www.cyberforum.ru/android-dev/thread1086599.html
Добрый день, Написал сервис для считывания gps-координат. С GPS_PROVIDER проблем нет, все работает. Но если попытаться заменить на NETWORK_PROVIDER - он недоступен. И становится доступен только если в настройках телефона в настройках местоположения включить все галочки, включая Местоположение гугл. Но так ведь не должно быть? Например, яндекс-карты как то определяют местоположение при...
Android Аргументы Async потока Здравствуйте, такой вопрос есть поток типа: private class Parse_pre extends AsyncTask<String, Void, List<String>> { protected List<String> doInBackground(String... arg) { try { Document doc_line = Jsoup.connect("http://lost_magic.net"+arg).timeout(7000).get(); http://www.cyberforum.ru/android-dev/thread1086357.html
ArrayAdapter для Spinner во Fragment Android
Всем привет. В приложении MainActivity имеет контейнер для отображения Fragment (Calc). В activity_calc.xml есть spinner Подскажите где правильнее будет прописать ArrayAdapter в MainActivity или Fragment Так же если я определяю spinner: Spinner minut = (Spinner)findViewById(R.id.minspinner); в классе Calc, то он просит добавить в класс: private Spinner findViewById(int minspinner) {...
Нереально большой размер apk Android
нереальный размер apk = 700 кб))) кода немного никаких экранов и картинок... из проекта удалил все что мог... все картинки все... такое апк по моим меркам долже килобайт 10 весить Добавлено через 45 секунд может есть какие то дополнительные меры...
Android Время. Перевод согласно часовым поясам http://www.cyberforum.ru/android-dev/thread1086232.html
есть filetime 130358883000000000 , перевожу в нормальный вид long pwdLastSet = Long.parseLong("130358883000000000"); Log.i(TAG,"long value : "+pwdLastSet); long javaTime = pwdLastSet - 0x19db1ded53e8000L; javaTime /= 10000L; Date today = new Date(javaTime); SimpleDateFormat sdf2 = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss"); String newDateString =...
Android демон Как после установки приложения(сервиса) сделать так, чтобы сервис заработал, без входа в основное активити... может кто реализовывал??? можа чо с этим колдовать SharedPreferences... ваще такто мне активити ненужна... мне нужна просто служба демон без интерфейса Добавлено через 37 минут как же запустить сервис без интерфейса... подробнее

Показать сообщение отдельно
Akramjon
0 / 0 / 0
Регистрация: 03.06.2013
Сообщений: 17

2 таблицы в одном базе данных не могу создать - Android

31.01.2014, 20:42. Просмотров 1125. Ответов 2
Метки (Все метки)

Всем привет
месяц назад не имел даже представления что такое БД но все получилось много читал и старался спасибо всем кто помогал теперь передомной стоит задача в одном БД сделать 2 таблицы здесь же в форуме есть отличный пример и ответ на мой вопрос Создать несколько таблиц в базе данных я постарался по примеру сделать но не получилось
так вот в моем БД есть таблица TABLE_GOODS я сохраняю 4 пункта в нем и даже могу видеть в listveiw
в нем я сохраняю приход
теперь мне надо создать таблицу TABLE_SELL где я буду сохранять что продал или отдал в долг
здесь я и остановился
пожалуйста подскажите мои ошибки и как их исправит сильно не пинайте
честно говоря я первый раз код пищу там показывает С# не обращайте внимание я не смог найти как будет Java показываться

Код Code
1
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
public class Goods {
    private int id;
    private String name_goods;
    private String date;
    private String amount;
    private String cost;
 
    public Goods() {
    }
 
    public Goods(int id, String name_goods, String date, String amount, String cost) {
        this.id = id;
        this.name_goods = name_goods;
        this.date = date;
        this.amount = amount;
        this.cost = cost;
    }
 
    public int getId() {
        return id;
    }
 
    public void setId(int id) {
        this.id = id;
    }
 
    public String getName_goods() {
        return name_goods;
    }
 
    public void setName_goods(String name_goods) {
        this.name_goods = name_goods;
    }
 
    public String getDate() {
        return date;
    }
 
    public void setDate(String date) {
        this.date = date;
    }
 
    public String getAmount() {
        return amount;
    }
 
    public void setAmount(String amount) {
        this.amount = amount;
    }
 
    public String getCost() {
        return cost;
    }
 
    public void setCost(String cost) {
        this.cost = cost;
    }
 
    @Override
    public String toString() {
        return "Goods[id: " + id + ", name_goods: " + name_goods + ", date: " + date + ", " +
                "amount: " + amount + ", cost: " + cost + "]";
    }
 
}
здесь создаю БД

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
public class DBHandlerImpl extends SQLiteOpenHelper implements DBHandler<Goods>{
 
    private static final int DATABASE_VERSION = 3;
    private static final String DATABASE_NAME = "app_base";
 
    private static final String TABLE_GOODS = "users";
    private static final String TABLE_SELL = "sell";
    private static final String KEY_ID = "id";
    private static final String KEY_NAME_GOODS = "name_goods";
    private static final String KEY_DATE = "date";
    private static final String KEY_AMOUNT = "amount";
    private static final String KEY_COST = "cost";
 
    public DBHandlerImpl(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }
 
    @Override
    public void onCreate(SQLiteDatabase db) {
        String query = "Create Table " + TABLE_GOODS + "(" + KEY_ID + "INTEGER PRIMARY KEY, " +
                                                            KEY_NAME_GOODS + " TEXT, " +
                                                            KEY_DATE + " TEXT, " +
                                                            KEY_AMOUNT + " TEXT, " +
                                                            KEY_COST + " TEXT)";
        db.execSQL(query);
 
        String queryLose = "Create Table " + TABLE_SELL + "(" + KEY_ID + "INTEGER PRIMARY KEY, " +
                                                            KEY_NAME_GOODS + " TEXT, " +
                                                            KEY_DATE + " TEXT, " +
                                                            KEY_AMOUNT + " TEXT, " +
                                                            KEY_COST + " TEXT)";
        db.execSQL(queryLose);
 
    }
 
    @Override
    public void onUpgrade(SQLiteDatabase db, int i, int i2) {
 
    }
 
    @Override
    public void add(Goods goods) {
        SQLiteDatabase db = this.getWritableDatabase();
        ContentValues values = new ContentValues();
 
        values.put(KEY_NAME_GOODS, goods.getName_goods());
        values.put(KEY_DATE, goods.getDate());
        values.put(KEY_AMOUNT, goods.getAmount());
        values.put(KEY_COST, goods.getCost());
        db.insert(TABLE_GOODS, null, values);
 
        values.put(KEY_NAME_GOODS, goods.getName_goods());
        values.put(KEY_DATE, goods.getDate());
        values.put(KEY_AMOUNT, goods.getAmount());
        values.put(KEY_COST, goods.getCost());
        db.insert(TABLE_SELL, null, values);
 
        db.close();
    }
здесь работаю на Prihod Activity

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
public class Prihod extends Activity{
    private DBHandler<Goods> db;
    private Goods goods;
    private EditText edtTovar;
    private EditText editDate;
    private EditText editAmount;
    private EditText editCost;
    private Button btn_save;
    private Button btn_info;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.prihod);
        TextView textTovar = (TextView)findViewById(R.id.textTovar);
        TextView textDate = (TextView)findViewById(R.id.textDate);
        TextView textAmount = (TextView)findViewById(R.id.textAmount);
        TextView textCost = (TextView)findViewById(R.id.textCost);
        edtTovar = (EditText)findViewById(R.id.edtTovar);
        editDate = (EditText)findViewById(R.id.editDate);
        editAmount = (EditText)findViewById(R.id.editAmount);
        editCost = (EditText)findViewById(R.id.editCost);
        btn_save = (Button)findViewById(R.id.btn_save);
        btn_info = (Button)findViewById(R.id.btn_info);
        db = new DBHandlerImpl(this);
 
    }
 
    public void saveTovar(View v){
        AlertDialog.Builder builder = new AlertDialog.Builder(Prihod.this);
        builder.setTitle("Подтвердить сохранение...");
        builder.setMessage("Вы уверены, что хотите сохранить?");
        builder.setIcon(R.drawable.save);
        builder.setPositiveButton("Да", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                goods = new Goods(1, edtTovar.getText().toString(),
                        editDate.getText().toString(),
                        editAmount.getText().toString(),
                        editCost.getText().toString());
                db.add(goods);
                Toast.makeText(getApplicationContext(), "Новый товар сохранен!", Toast.LENGTH_SHORT).show();
            }
        });
 
        builder.setNegativeButton("Нет", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                dialog.cancel();
            }
        });
 
        builder.show();
    }
здесь Rashod Activity здесь я должен сохранять что продал или отдал в долг

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
public class Rashod extends Activity{
    private DBHandler<Goods> db;
    private Goods goods;
    private EditText editRashod;
    private EditText editDateRashod;
    private EditText editAmountRashod;
    private EditText editCostRashod;
    private Button btn_rashod_save;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.rashod);
        TextView textTovar = (TextView)findViewById(R.id.textTovar);
        TextView textDate = (TextView)findViewById(R.id.textDate);
        TextView textAmount = (TextView)findViewById(R.id.textAmount);
        TextView textCost = (TextView)findViewById(R.id.textCost);
        editRashod = (EditText)findViewById(R.id.edtTovar);
        editDateRashod = (EditText)findViewById(R.id.editDate);
        editAmountRashod = (EditText)findViewById(R.id.editAmount);
        editCostRashod = (EditText)findViewById(R.id.editCost);
        btn_rashod_save = (Button)findViewById(R.id.btn_rashod_save);
        db = new DBHandlerImpl(this);
    }
 
    public void saveRashod(View v){
        AlertDialog.Builder builder = new AlertDialog.Builder(Rashod.this);
        builder.setTitle("Подтвердить сохранение...");
        builder.setMessage("Вы уверены, что хотите сохранить?");
        builder.setIcon(R.drawable.save);
        builder.setPositiveButton("Да", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                goods = new Goods(1, editRashod.getText().toString(),
                        editDateRashod.getText().toString(),
                        editAmountRashod.getText().toString(),
                        editCostRashod.getText().toString());
                db.add(goods);
                Toast.makeText(getApplicationContext(), "Новый товар сохранен!", Toast.LENGTH_SHORT).show();
            }
        });
 
        builder.setNegativeButton("Нет", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                dialog.cancel();
            }
        });
 
        builder.show();
    }
}
Так вот пожалуйста здесь я какие ошибки делаю или правильно все
должен ли я другие имена дат им или так пойдут KEY_NAME_GOODS, KEY_DATE, KEY_AMOUNT, KEY_COST

C#
1
2
3
4
5
6
 String queryLose = "Create Table " + TABLE_SELL + "(" + KEY_ID + "INTEGER PRIMARY KEY, " +
                                                            KEY_NAME_GOODS + " TEXT, " +
                                                            KEY_DATE + " TEXT, " +
                                                            KEY_AMOUNT + " TEXT, " +
                                                            KEY_COST + " TEXT)";
        db.execSQL(queryLose);
Добавлено через 20 минут
забыл показать лог от сохранения таблиц
здесь таблица TABLE_GOODS

Код
01-31 02:07:25.992  28544-28544/uz.akrampulatov.app E/SQLiteLog﹕ (1) no such table: sell
01-31 02:07:25.992  28544-28544/uz.akrampulatov.app E/SQLiteDatabase﹕ Error inserting amount=5 name_goods=nokia 1208 date=31.01.2014 cost=100
    android.database.sqlite.SQLiteException: no such table: sell (code 1): , while compiling: INSERT INTO sell(amount,name_goods,date,cost) VALUES (?,?,?,?)
            at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
            at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:882)
            at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:493)
            at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
            at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58)
            at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:31)
            at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1467)
            at android.database.sqlite.SQLiteDatabase.insert(SQLiteDatabase.java:1339)
            at uz.akrampulatov.app.activity.db.DBHandlerImpl.add(DBHandlerImpl.java:71)
            at uz.akrampulatov.app.activity.db.DBHandlerImpl.add(DBHandlerImpl.java:12)
            at uz.akrampulatov.app.activity.Prihod$1.onClick(Prihod.java:58)
            at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:166)
            at android.os.Handler.dispatchMessage(Handler.java:99)
            at android.os.Looper.loop(Looper.java:137)
            at android.app.ActivityThread.main(ActivityThread.java:4745)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:511)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
            at dalvik.system.NativeStart.main(Native Method)
здесь таблица TABLE_SELL

Код
01-31 02:09:48.836  28544-28544/uz.akrampulatov.app E/AndroidRuntime﹕ FATAL EXCEPTION: main
    java.lang.NullPointerException
            at uz.akrampulatov.app.activity.Rashod$1.onClick(Rashod.java:48)
            at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:166)
            at android.os.Handler.dispatchMessage(Handler.java:99)
            at android.os.Looper.loop(Looper.java:137)
            at android.app.ActivityThread.main(ActivityThread.java:4745)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:511)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
            at dalvik.system.NativeStart.main(Native Method)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 17:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru