質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
SQLite

SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Q&A

解決済

2回答

1738閲覧

Android Studio(java) SQLiteで4以上のカラムを持つデータベースを作成する

bu_873

総合スコア10

SQLite

SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

0グッド

0クリップ

投稿2019/06/07 09:20

SQLiteで4以上のカラムを持つデータベース

現在、SQLiteを用いてCardOpenHelper.javaで複数のカラムを持つデータベースを作成したいのですが、
"_id","name","nick"までは認識して貰えるのですが、
4つ目の"sex"から認識してもらえません
以下にプログムを添付します

CardOpenHelper.java

1package es.practice; 2 3import android.content.ContentValues; 4import android.content.Context; 5import android.database.sqlite.SQLiteDatabase; 6import android.database.sqlite.SQLiteOpenHelper; 7 8public class CardOpenHelper extends SQLiteOpenHelper { 9 private static final int DATABASE_VERSION = 1; 10 private static final String DATABASE_NAME = "Card.db"; 11 private static final String TABLE_NAME = "carddb"; 12 private static final String _ID = "_id"; 13 private static final String COLUMN_NAME_NAME = "name"; 14 private static final String COLUMN_NAME_NICK = "nick"; 15 private static final String COLUMN_NAME_SEX = "sex"; 16 private static final String COLUMN_NAME_TEAM = "team"; 17 private static final String COLUMN_NAME_ROLE = "role"; 18 private static final String COLUMN_NAME_TEL = "tel"; 19 private static final String COLUMN_NAME_MAIL = "mail"; 20 private static final String SQL_CREATE_ENTRIES = 21 "CREATE TABLE " + TABLE_NAME + " ("+ 22 _ID + " INTEGER PRIMARY KEY,"+ 23 COLUMN_NAME_NAME + " TEXT,"+ 24 COLUMN_NAME_NICK + " TEXT"+ 25 COLUMN_NAME_SEX + "TEXT"+ 26 COLUMN_NAME_TEAM + "TEXT" + 27 COLUMN_NAME_ROLE + "TEXT" + 28 COLUMN_NAME_TEL + "TEXT" + 29 COLUMN_NAME_MAIL + "TEXT" + " )"; 30 31 private static final String SQL_DELETE_ENTRIES = 32 "DROP TABLE IF EXISTS " + TABLE_NAME; 33 34 CardOpenHelper(Context context) { 35 super(context, DATABASE_NAME, null, DATABASE_VERSION); 36 } 37 38 public void onCreate(SQLiteDatabase db) { 39 db.execSQL(SQL_CREATE_ENTRIES); 40 ContentValues values = new ContentValues(); 41 values.put("name", "na"); 42 values.put("nick","ni" ); 43 //values.put("sex","s"); 44 //values.put("team","te"); 45 //values.put("role","r"); 46 //values.put("tel","te"); 47 //values.put("mail","m"); 48 db.insert("carddb", null, values); 49 } 50 public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 51 db.execSQL(SQL_DELETE_ENTRIES); 52 onCreate(db); 53 } 54 public void onDowngrade(SQLiteDatabase db, int oldVersion, int newVersion) { 55 // onUpgrade(db, oldVersion, newVersion); 56 } 57}

###試したこと
・実行したところカラム数が4以上になると実行されません。
・ContentValues()のサイズ指定が怪しいと思い何度も試しているのですが、解決しませんでした。(サイズ指定なしだと3以下?)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

SQL

1 COLUMN_NAME_NICK + " TEXT"+ 2 --↑TEXTの前に空白があるが、 3 COLUMN_NAME_SEX + "TEXT"+ 4 --↑TEXTの前に空白がない

投稿2019/06/07 09:34

Orlofsky

総合スコア16415

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

bu_873

2019/06/07 09:49

ごめんなさい! Orioskyさんの回答を見る前に 自分で気づいて直してしまいました 解答していただいたのに本当に申し訳ありません!
guest

0

自己解決

申し訳ありません。
CREATE TABLEの記述ミスでした。

private static final String SQL_CREATE_ENTRIES = "CREATE TABLE " + TABLE_NAME + " ("+ _ID + " INTEGER PRIMARY KEY,"+ COLUMN_NAME_NAME + " TEXT,"+ COLUMN_NAME_NICK + " TEXT,"+ COLUMN_NAME_SEX + " TEXT,"+ COLUMN_NAME_TEAM + " TEXT,"+ COLUMN_NAME_ROLE + " TEXT,"+ COLUMN_NAME_TEL + " TEXT,"+ COLUMN_NAME_MAIL + " TEXT" + " )";

これから触られる方は
カラムの" TEXT,"の空白と「,」にお気を付けください

投稿2019/06/07 09:43

bu_873

総合スコア10

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問