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

Basic4Android

Войти
Регистрация
Восстановить пароль
 
FatSlowpoke
0 / 0 / 0
Регистрация: 11.06.2013
Сообщений: 16
#1

Не происходит запись в таблицу SQLite - Basic4Android

10.04.2016, 15:55. Просмотров 855. Ответов 2

Я пытаюсь создать для своего приложения страницу регистрации/авторизации. В базе данных дополнительно создаю таблицу для пользователей. На activity с регистрацией, после нажатия кнопки "Зарегистрироваться" хочу выполнить проверку существует ли пользователь с таким email в базе или нет. И есть нет, то введенные данные должны быть записаны в таблицу. Проверка вроде как происходит, но результат всегда отрицательный, мне кажется, что данные просто не записываются в таблицу. Никак не могу понять почему.

База данных. Проверка введенных данных - Exist
Java
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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
public class DB {
//название и версия БД
private static final String DB_NAME = "mydb";
private static final int DB_VERSION = 1;
 
//столбцы для таблицы событий и создание таблицы
private static final String DB_TABLE_EVENTS = "mytab";
public static final String EVENTS_COLUMN_ID = "_id";
public static final String EVENTS_COLUMN_TITLE = "title";
public static final String EVENTS_COLUMN_DATE = "date";
public static final String EVENTS_COLUMN_TIME = "time";
public static final String EVENTS_COLUMN_ADDRESS = "address";
public static final String EVENTS_COLUMN_PHONE = "phone";
public static final String EVENTS_COLUMN_DESCRIPTION = "description";
 
private static final String CREATE_TABLE_EVENTS =
        "create table " + DB_TABLE_EVENTS + "(" +
                EVENTS_COLUMN_ID + " integer primary key autoincrement, " +
                EVENTS_COLUMN_TITLE + " text, " +
                EVENTS_COLUMN_DATE + " text, " +
                EVENTS_COLUMN_TIME + " text, " +
                EVENTS_COLUMN_ADDRESS + " text, " +
                EVENTS_COLUMN_PHONE + " text, " +
                EVENTS_COLUMN_DESCRIPTION + " text" +
                ");";
 
//столбцы для таблицы пользователей и создание таблицы
private static final String DB_TABLE_USERS = "users_tab";
public static final String USERS_COLOMN_ID = "_id";
public static final String USERS_COLOMN_LOGIN = "login";
public static final String USERS_COLOMN_EMAIL = "email";
public static final String USERS_COLOMN_PASSWORD = "pass";
 
private static final String CREATE_TABLE_USERS =
        "create table " + DB_TABLE_USERS + "(" +
                USERS_COLOMN_ID + " integer primary key autoincrement, " +
                USERS_COLOMN_LOGIN + " text, " +
                USERS_COLOMN_EMAIL + " text, " +
                USERS_COLOMN_PASSWORD + " text" +
                ");";
 
//столбцы для таблицы списка и создание таблицы
private static final String DB_TABLE_LIST = "list_tab";
public static final String LIST_COLOMN_ID = "_id";
public static final String USERLIST_COLOMN_ID = "_id_user";
public static final String EVENTLIST_COLOMN_ID = "_id_event";
 
private static final String CREATE_TABLE_LIST =
        "create table " + DB_TABLE_LIST + "(" +
                LIST_COLOMN_ID + " integer primary key autoincrement, " +
                USERLIST_COLOMN_ID + " integer not null ,foreign key ("+USERLIST_COLOMN_ID+") reference "+DB_TABLE_USERS+" ("+USERS_COLOMN_ID+"), " +
                EVENTLIST_COLOMN_ID + " integer not null ,foreign key ("+EVENTLIST_COLOMN_ID+") reference "+DB_TABLE_EVENTS+" ("+EVENTS_COLUMN_ID+")" +
                ");";
 
private final Context mCtx;
private DBHelper mDBHelper;
private SQLiteDatabase mDB;
public DB(Context ctx) {
    mCtx = ctx;
}
 
// открыть подключение
public void open() {
    mDBHelper = new DBHelper(mCtx, DB_NAME, null, DB_VERSION);
    mDB = mDBHelper.getWritableDatabase();
}
 
// закрыть подключение
public void close() {
    if (mDBHelper!=null) mDBHelper.close();
}
 
// получить все данные из таблицы DB_TABLE_EVENTS
public Cursor getAllData() {
    return mDB.query(DB_TABLE_EVENTS, null, null, null, null, null, "_id DESC");
}
 
//получаем объект по id из таблицы DB_TABLE_EVENTS
public Cursor getEventById(long id) {
    return mDB.query("mytab", null, "_id = " + id, null, null, null, "_id DESC");
}
 
//проверяем существует ли пользователь
public String Exist(String user) {
    String username="";
    try {
        Cursor c =  mDB.query(DB_TABLE_USERS, null, USERS_COLOMN_EMAIL + "=?", new String[]{String.valueOf(user)},null, null, null);
 
        if (c == null) {
            return username;
        }
        else {
            c.moveToFirst();
            username = c.getString(c.getColumnIndex(USERS_COLOMN_EMAIL));
        }
    }
 
    catch(Exception e){
        e.printStackTrace();
    }
 
    return username;
}
 
// добавить запись в DB_TABLE_EVENTS
public void addRecEvent(String tit, String dat, String tim, String adr, String phn, String dsc) {
    ContentValues cv = new ContentValues();
    cv.put(EVENTS_COLUMN_TITLE, tit);
    cv.put(EVENTS_COLUMN_DATE, dat);
    cv.put(EVENTS_COLUMN_TIME, tim);
    cv.put(EVENTS_COLUMN_ADDRESS, adr);
    cv.put(EVENTS_COLUMN_PHONE, phn);
    cv.put(EVENTS_COLUMN_DESCRIPTION, dsc);
    mDB.insert(DB_TABLE_EVENTS, null, cv);
}
 
// добавить запись в DB_TABLE_USERS
public void addRecUsers(String login, String email, String pass) {
    ContentValues cv2 = new ContentValues();
    cv2.put(USERS_COLOMN_EMAIL, email);
    cv2.put(USERS_COLOMN_LOGIN, login);
    cv2.put(USERS_COLOMN_PASSWORD, pass);
    mDB.insert(DB_TABLE_USERS, null, cv2);
}
 
// удалить запись из DB_TABLE_EVENTS
public void delRec(long id) {
    mDB.delete(DB_TABLE_EVENTS, EVENTS_COLUMN_ID + "=" + id, null);
}
 
// класс по созданию и управлению БД
private class DBHelper extends SQLiteOpenHelper {
 
    public DBHelper(Context context, String name, CursorFactory factory,
                    int version) {
        super(context, name, factory, version);
    }
 
    // создаем и заполняем БД
    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL(CREATE_TABLE_EVENTS);
        db.execSQL(CREATE_TABLE_USERS);
 
        ContentValues cv = new ContentValues();
        for (int i = 1; i < 2; i++) {
            cv.put(EVENTS_COLUMN_TITLE, "Увлекательное событие");
            cv.put(EVENTS_COLUMN_DATE, "Каждый день");
            cv.put(EVENTS_COLUMN_TIME, "каждый час");
            cv.put(EVENTS_COLUMN_ADDRESS, "где-то");
            cv.put(EVENTS_COLUMN_PHONE, "спросите у нас.");
            cv.put(EVENTS_COLUMN_DESCRIPTION, "происходит что-то интересное. Не пропустите самые интересные события вашего города!");
            db.insert(DB_TABLE_EVENTS, null, cv);
        }
 
        ContentValues cv2 = new ContentValues();
        for (int i = 1; i < 2; i++) {
            cv2.put(USERS_COLOMN_LOGIN, "superuser");
            cv2.put(USERS_COLOMN_EMAIL, "dasha");
            cv2.put(USERS_COLOMN_PASSWORD, "12345");
            db.insert(DB_TABLE_USERS, null, cv2);
        }
    }
 
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    }
}
Activity, где происходит регистрация:
Java
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
public class RegisterActivity extends Activity implements View.OnClickListener {
 
EditText etRegEmail, etRegLogin, etRegPassword;
Button btnRegister, btnLoginLink;
TextView tvSiteLink;
DB db;
 
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.register);
 
    etRegEmail = (EditText) findViewById(R.id.etRegEmail);
    etRegLogin = (EditText) findViewById(R.id.etRegLogin);
    etRegPassword = (EditText) findViewById(R.id.etRegPassword);
    btnRegister = (Button) findViewById(R.id.btnRegister23);
    btnLoginLink = (Button) findViewById(R.id.btnLoginLink);
    tvSiteLink = (TextView) findViewById(R.id.tvSiteLink);
 
    btnRegister.setOnClickListener(this);
    btnLoginLink.setOnClickListener(this);
 
    // открываем подключение к БД
    db = new DB(this);
    db.open();
}
 
@Override
public void onClick(View v) {
    switch(v.getId()){
        case R.id.btnRegister23:
            String email = (etRegEmail.getText().toString());
            String login = (etRegLogin.getText().toString());
            String pass = (etRegPassword.getText().toString());
            String storedUser = db.Exist(email);
            if (email.equals(storedUser)) {
                Toast.makeText(this, "Вы уже зарегистрированы. Пожалуйста, авторизируйтесь.", Toast.LENGTH_SHORT).show();
            }
            else db.addRecUsers(email, login, pass);
            break;
        case R.id.btnLoginLink:
            startActivity(new Intent(this, LoginActivity.class));
            break;
    }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.04.2016, 15:55     Не происходит запись в таблицу SQLite
Посмотрите здесь:

Java SE SQLite INSERT в таблицу
Осуществить запись в таблицу, либо обновить таблицу, чтобы формулы считались VBA
Добавление записей в таблицу sqlite C#
Из-за триггера не происходит вставка в таблицу SQL Server
C# Не происходит добавление данных в таблицу
C# MS SQL Не происходит добавление данных в таблицу
C# Не происходит запись в созданную таблицу SQLite
SQLite - добавить запись в таблицу Delphi БД SQLite
C++ Qt Получить запись из SQLite
Sqlite. 300001 запись C++ Qt
Android Не происходит BackUp DataBase SQLite

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Pro_grammer
Модератор
5876 / 2036 / 387
Регистрация: 24.04.2011
Сообщений: 3,452
Записей в блоге: 9
10.04.2016, 20:28     Не происходит запись в таблицу SQLite #2
FatSlowpoke, Это форум о программировании на языке Basic4Android.
Ваш код на Java(TM) 2 Platform Standard Edition 5.0 тут не к месту!
FatSlowpoke
0 / 0 / 0
Регистрация: 11.06.2013
Сообщений: 16
10.04.2016, 22:29  [ТС]     Не происходит запись в таблицу SQLite #3
Pro_grammer, Упс, нечаянно вышло. Вы не могли бы перенести тему в нужный раздел?
Yandex
Объявления
10.04.2016, 22:29     Не происходит запись в таблицу SQLite
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru