2012-03-24 2 views
0

это мой код `Я создал одну таблицу, но я хочу создать две, и когда я нажму кнопку« показать », я хочу иметь возможность выбирать содержимое из обеих таблиц и показать им ... это мой код ... у меня возникают проблемы с созданием двух таблиц и показывая их:SQL android, создавая несколько таблиц Дополнительная информация

public class Entername extends Activity { 

     private Button showButton; 
     private Button insertButton; 
     private TextView nameEditText; 
     private TextView addTextView; 
     private Button doneButton; 
     public DatabaseHelper dbHelper = new DatabaseHelper(Entername.this,"pubgolfdatabase",2); 
     /** Called when the activity is first created. */ 
     @Override 
     public void onCreate(Bundle savedInstanceState) 
     { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.entername); 
      addTextView = (TextView)findViewById(R.id.textView1); 
      doneButton= (Button)findViewById(R.id.doneButton); 
      insertButton = (Button)findViewById(R.id.addButton); 
      nameEditText = (EditText)findViewById(R.id.name); 
      showButton =(Button)findViewById(R.id.button1); 
      showButton.setOnClickListener(new showButtonListener()); 
      insertButton.setOnClickListener(new InsertButtonListener()); 
      doneButton.setOnClickListener(new DoneButtonListener()); 

      /** create the database if it dosen't exist **/ 
      SQLiteDatabase db = dbHelper.getWritableDatabase(); 
      try 
      { 
       db.execSQL("create table user_name(ID integer, name varchar(90));"); 

      } 
      catch(Exception e) 
      { 
       e.printStackTrace(); 
      } 

     } 

     class InsertButtonListener implements OnClickListener, android.view.View.OnClickListener 
     { 
      public void onClick(View v) 
      { 

       if("".equals(nameEditText.getText().toString())) 
       { 
        Toast toast = Toast.makeText(Entername.this, "Sorry, you must input both the name and the address!", Toast.LENGTH_LONG); 
        toast.show(); 
       } 
       else 
       { 
        long flag = 0; 
        int id = 1; 
        SQLiteDatabase db = dbHelper.getWritableDatabase(); 
        Cursor cursor = db.query("user_name", new String[]{"count(*) ID"}, null, null, null, null, null); 
        while(cursor.moveToNext()) 
        { 
         int idFromDatabase = cursor.getInt(cursor.getColumnIndex("ID")); 
         if(idFromDatabase != 0) 
         { 
          id = 1 + idFromDatabase; 
         } 
        } 
        ContentValues values = new ContentValues(); 
        values.put("ID", id); 
        values.put("name", nameEditText.getText().toString().trim()); 

        flag = db.insert("user_name", null, values); 
        if(flag != -1) 
        { 
         Toast toast = Toast.makeText(Entername.this, "You have successful inserted this record into database! ", Toast.LENGTH_LONG); 
         toast.show(); 
         db.close(); 

         //clear fields    //clearing edittexts 
          nameEditText.setText(""); 


         return; 
        } 
        else 
        { 
         Toast toast = Toast.makeText(Entername.this, "An error occured when insert this record into database!", Toast.LENGTH_LONG); 
         toast.show(); 
         db.close(); 

         //clear fields 
         //clearing edittexts 
          nameEditText.setText(""); 
         return; 
        } 
       } 
      } 

      public void onClick(DialogInterface dialog, int which) 
      { 
       // TODO Auto-generated method stub 

      } 
     } 


     class DoneButtonListener implements OnClickListener, android.view.View.OnClickListener 
     { 
      public void onClick(View v) 
      { 

       Intent myIntent = new Intent(v.getContext(), Pickholespubs.class); 
       startActivityForResult(myIntent, 0); 

      } 

      public void onClick(DialogInterface dialog, int which) 
      { 
       // TODO Auto-generated method stub 
      } 
     } 
     class showButtonListener implements OnClickListener, android.view.View.OnClickListener 
     { 
      public void onClick(View v) 
      { 
       String display = ""; 
       SQLiteDatabase db = dbHelper.getWritableDatabase(); 
       /** the result will be loaded in cursor **/ 
       Cursor cursor = db.query("user_name", new String[]{"ID","name"}, null, null, null, null, null); 
       /** check if the table is empty **/ 
       if (!cursor.moveToNext()) 
       { 
        addTextView.setText("No data to display, please make sure you have already inserted data!"); 
        db.close(); 
        return; 
       } 
       cursor.moveToPrevious(); 
       /** if the table is not empty, read the result into a string named display **/ 
       while(cursor.moveToNext()) 
       { 
        int ID = cursor.getInt(cursor.getColumnIndex("ID")); 
        String name = cursor.getString(cursor.getColumnIndex("name")); 

        display = display + "\n"+"Player"+ID+", Name: "+name; 
       } 
       /** display the result on the phone **/ 
       addTextView.setText(display); 
       db.close(); 
      } 

      public void onClick(DialogInterface dialog, int which) 
      { 
       // TODO Auto-generated method stub 
      } 
     } 
}` 
+1

Выполнение двух запросов - нет-нет? –

+0

Что не подходит db.execSQL ("create table table_name1 ..."); db.execSQL ("create table table_name2 ..."); ? –

+0

Я использую это: '/ ** создать базу данных, если она не существует **/SQLiteDatabase db = dbHelper.getWritableDatabase(); try {db.execSQL (CREATE_TABLE_1); db.execSQL (CREATE_TABLE_2); } catch (Исключение e) {e.printStackTrace(); }} ', но я получаю, что он не создает вторую таблицу – user1179083

ответ

1

Простой ответ будет нет, вы не можете это сделать. Как Create Table Синтаксис не позволяет выполнять две операции DML.

Но Альтернет способ подобен следующим образом,

Create Table table1 (column list); Create Table table2 (column list); 

Это может быть возможным. Мораль должна быть ; (точка с запятой) после завершения каждого синтаксиса Create Table).

+0

Я использовал это, но он говорит, что моя вторая таблица не создается – user1179083

+0

Я использую это: '/** создать базу данных, если она не существует **/ SQLiteDatabase db = dbHelper.getWritableDatabase(); \t \t try { db.execSQL (CREATE_TABLE_1); \t \t \t db.execSQL (CREATE_TABLE_2); \t \t \t \t \t} \t \t улов (Исключение е) \t \t { \t \t \t e.printStackTrace(); \t \t} } ' , но я получаю, что это не создает вторую таблицу – user1179083

+0

хорошо я думаю, вы, возможно, потребуется совершить после создания первой таблицы – Krish

Смежные вопросы