1

String sqlQueryToCreateUndergraduateDetailsTable = "create table if not exists " + TABLE_NAME_GPA + " ( " + BaseColumns._ID + " integer primary key autoincrement, " +"COLUMN_NAME" + " text not null, " +"COLUMN_SURNAME" + " text not null, " +"COLUMN_DATE_OF_BIRTH"+ "text not null, +"COLUMN_ADDRESS" +"text not null," +"COLUMN_EMAIL" +"text not null," +"COLUMN_PHONE_NUMBER" +"text not null," +"COLUMN_CITY" +"text not null," +"COLUMN_PTYE_PAYMENT" +"text not null," +"COLUMN_SHIPPING_TYPE" +"text not null," +"COLUMN_CARD_NUMBER" + "text not null," +"COLUMN_Password" +"text not null);";

データベースに保存しようとしていますが、「エラーコード= 1、msg=テーブルCustomer_details_tableに「カード番号」という名前の列がありません」というエラーが表示されます。

4

3 に答える 3

1

テーブル名または列名にスペースを含めることはできません。

Card_Numberまたはに変更するとCardNumber、機能するはずです。

編集

エラーと最初に言ったことを見ると、間違ったSQLを投稿したと思います。

テーブル作成SQLを表示しましたが、「データベースに保存しようとしいます」と表示されます...エラーメッセージは、列を作成しようとしておらず、列を検索していることを示しているようです。

挿入メソッドまたは更新メソッドのSQLを確認する必要があると思います。ここでは、定数を使用する代わりに手動で入力し、誤ってスペースを入れてしまった可能性があります。

于 2012-05-23T15:52:29.170 に答える
1

また、定数を「」に入れたくないと思いますか、それとも定数として持っていませんか?

次のようになります。

String sqlQueryToCreateUndergraduateDetailsTable = "create table if not exists  "
        + TABLE_CREDENTIALS + " ( " + BaseColumns._ID
        + " integer primary key autoincrement, " + COLUMN_NAME
        + " text not null, " + COLUMN_PASSWORD + " text not null);";
于 2012-05-23T15:56:11.343 に答える
0

クエリがめちゃくちゃです。列名とその属性の間にスペースを入れる必要があります。

たとえば、次のようになります。

... +"COLUMN_CARD_NUMBER" + "text not null," + ...

このようにする必要があります:

... +"COLUMN_CARD_NUMBER " + "text not null," + ...

列名の後の空白に注意してください

于 2012-05-23T15:28:01.503 に答える