2012-03-24 10 views
0

das ist mein Code `Ich habe eine Tabelle erstellt, aber ich möchte zwei erstellen, und wenn ich die Schaltfläche" anzeigen ", möchte ich Inhalte aus beiden Tabellen auswählen können und zeigen ihnen ... dies ist mein Code ... habe Probleme Erstellen von zwei Tabellen und zeigen sie:SQL Android, Erstellen mehrerer Tabellen mehr Informationen

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

Die Ausführung von zwei Abfragen ist ein No-No? –

+0

Was passt nicht db.execSQL ("create table table_name1 ..."); db.execSQL ("create table table_name2 ..."); ? –

+0

Ich benutze dies: '/ ** Erstelle die Datenbank wenn sie nicht existiert **/SQLiteDatabase db = dbHelper.getWritableDatabase(); probiere {db.execSQL (CREATE_TABLE_1); db.execSQL (CREATE_TABLE_2); } catch (Ausnahme e) {e.printStackTrace(); }} aber bekomme, dass es nicht die zweite Tabelle erstellt – user1179083

Antwort

1

Eine einfache Antwort Nein würde man es nicht tun können. Wie Create Table Syntax erlaubt nicht zwei DML Operationen gleichzeitig.

Aber die Art und Weise wie alternet ist wie folgt,

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

Dies könnte möglich sein. Moral ist dort muss ein ; (Semikolon) sein, nachdem jede Create Table Syntax abgeschlossen ist).

+0

Ich habe das verwendet, aber es sagt, dass meine zweite Tabelle nicht erstellt wird – user1179083

+0

Ich benutze dies: '/ ** Erstellen Sie die Datenbank, wenn es nicht existiert **/ SQLiteDatabase db = dbHelper.getWritableDatabase(); \t \t versuchen { db.execSQL (CREATE_TABLE_1); \t \t \t db.execSQL (CREATE_TABLE_2); \t \t \t \t \t } \t \t catch (Exception e) { \t \t \t \t \t e.printStackTrace(); \t \t} } ' aber immer ist, dass es die zweite Tabelle nicht ist die Schaffung – user1179083

+0

ok Ich denke, man könnte nach dem Erstellen erste Tabelle – Krish

Verwandte Themen