2011-01-31 88 views
1

嘿大家关闭;) 我有以下代码:字符串是不能正确用双引号

private void onCreateDBAndDBTables(){ 
myDB = this.openOrCreateDatabase("Projects", MODE_PRIVATE, null); 
myDB.execSQL("CREATE TABLE IF NOT EXISTS " + MY_DB_TABLE 
    + "(_id integer primary key autoincrement 
    name varchar (16), 
    comment varchar (128), 
    customer_project boolean, 
    booking_details varchar (225), 
    editable boolean)" 
     +";"); 
} 

,它显示在标题中提到的错误。 我希望你能帮助我在这里,因为我不知道有什么问题... 〜山姆〜

+0

这不是SQL,它是C#? – 2011-01-31 09:46:47

+0

不应该`autoincrement`是`auto_increment`? – acm 2011-01-31 09:49:25

+0

实际上,您甚至不需要将自动增量放入SQLite3中。你可以把它放在外面,当插入数据时,把键放入NULL,它会自动自动增加。也更新了答案以反映这一点。 – xil3 2011-01-31 09:59:00

回答

0

我想你在自动增量后应该是一个逗号(它应该是auto_increment)。 SQL中没有类型布尔值。你有没有考虑过使用SQLiteOpenHelper类? Notepad Tutorial中包含一个示例。

3

字符串中的每一个新行,你需要连接:

private void onCreateDBAndDBTables(){ 
myDB = this.openOrCreateDatabase("Projects", MODE_PRIVATE, null); 
myDB.execSQL("CREATE TABLE IF NOT EXISTS " + MY_DB_TABLE + 
       "(_id integer primary key," + 
       "name varchar (16)," + 
       "comment varchar (128)," + 
       "customer_project boolean," + 
       "booking_details varchar (225)," + 
       "editable boolean)" + 
       ";"); 
} 

*更新*

我还注意到,您正在使用sqlite3的,所以我更新了SQL一点 - 删除autoincrement

退房这篇文章对汽车增量的SQLite3是如何工作的:

http://www.sqlite.org/faq.html#q1

0

我想你autoincrement后缺少一个逗号,然后你不需要尾随分号

0

这是我的完整代码! :

import java.util.Arrays; 

import datenbank.test.R.id; import android.R.layout; import android.app.Activity; import android.content.SharedPreferences.Editor; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.widget.ArrayAdapter; import android.widget.EditText; import android.widget.Spinner; import android.widget.AbsSpinner; import android.widget.Toast;

公共类Projects_new延伸活动{

SQLiteDatabase myDB = null; 
    static final int MENU_INSERT_PROJECTS = 0; 
    static final int MENU_UPDATE_PROJECTS = 0; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(layout.activity_list_item); 

    Spinner s1 = (Spinner) findViewById(R.id.PROJECTS_NEW); 
    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
      this, 
      (MENU_INSERT_PROJECTS), 
      android.R.layout.simple_spinner_item); 
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    s1.setAdapter(adapter); 

    if(getIntent().hasExtra("id") == true) { 
     long l = getIntent().getExtras().getLong("id"); 
     myDB = this.openOrCreateDatabase(datenbank.MY_DB_NAME, MODE_PRIVATE, null); 

     Cursor myCursor = myDB.rawQuery("SELECT name,comment, customer_project, booking_details, editable FROM" + 
       datenbank.MY_DB_TABLE + "WHERE _id = "+l+";", null); 

     startManagingCursor(myCursor); 

     int ColumnName = myCursor.getColumnIndex("name"); //Name 
     int ColumnComment = myCursor.getColumnIndex("Comment"); //Comment 
     int ColumnCustomer_Project = myCursor.getColumnIndex ("Customer-Project?");//ist es für customer oder intern 
     int ColumnBooking_Details = myCursor.getColumnIndex("Details"); //details 
     int ColumnEditable = myCursor.getColumnIndex("Editable?"); //bearbeiten ja oder nein 

     if (myCursor != null) { 
       if (myCursor != null) { 
        EditText eName = (EditText)findViewById(R.id.PROJECTS_NEW); 
        eName.setText(myCursor.getString(ColumnName)); 

        EditText eComment = (EditText)findViewById(R.id.PROJECTS_NEW); 
        eComment.setText(myCursor.getString(ColumnComment)); 

        EditText eCustomer_Project = (EditText)findViewById(R.id.PROJECTS_NEW); 
        eCustomer_Project.setText(myCursor.getString(ColumnCustomer_Project)); 


        Spinner sBooking_Details = (Spinner)findViewById(R.id.PROJECTS_NEW); 
        sBooking_Details.setSelection(myCursor.getInt(ColumnBooking_Details), true); 

        EditText eEditable = (EditText)findViewById(R.id.PROJECTS_NEW); 
        eEditable.setText(myCursor.getString(ColumnEditable)); 
       } 
    }} 
} 

    private void setContentView(Class<layout> class1) { 
    // TODO Auto-generated method stub 

} 

private EditText findViewById(id id) { 
    // TODO Auto-generated method stub 
    return null; 
} 

public boolean onCreateOptionsMenu(Menu menu) { 

     super.onCreateOptionsMenu(menu); 

     if(getIntent().hasExtra("id")==true) 
     { 
      menu.add(0, MENU_UPDATE_PROJECTS, 0, R.string.MENU_PROJECTS) 
      .setShortcut('1','s') 
      .setIcon(android.R.drawable.ic_menu_save); 

     } 
     else 
     { 
      menu.add(0, MENU_INSERT_PROJECTS, 0, R.string.MENU_PROJECTS) 
      .setShortcut('1','s') 
      .setIcon(android.R.drawable.ic_menu_save); 
     } 
     return true; 

    } 

    public boolean onOptionsItemSelected(MenuItem item){ 
     switch (item.getItemId()) { 
     case MENU_INSERT_PROJECTS: 
      EditText Name = (EditText)findViewById(R.id.ed_Name); 
      EditText Comment = (EditText)findViewById(R.id.ed_Comment); 
      EditText CustomerProject = (EditText)findViewById(R.id.ed_CustomerProject); 
      EditText BookingDetails = (EditText)findViewById(R.id.ed_BookingDetails); 
      Spinner Editable = (Spinner)findViewById(R.id.cb_Editable); 

      int i = Editable.getSelectedItemPosition(); 

      if(Name.length()!=0){ 
       myDB = this.openOrCreateDatabase(datenbank.MY_DB_NAME, 
         MODE_PRIVATE, null); 


      } 

      //Projekt-Daten updaten (UPDATE)   
      if(getIntent().hasExtra("id") == true) 
      { 
       long l = getIntent().getExtras().getLong("id"); 
       myDB.execSQL("UPDATE "+datenbank.MY_DB_TABLE+" SET "+ 
         "name = '"+Name.getText().toString()+"', "+ 
        "Comment = '"+Comment.getText().toString()+"', "+ 
        "BookingDetails ='"+BookingDetails.getText().toString()+"', "+ 
        "Editable ='"+i+"', "+ 
        "CustomerProject = '"+CustomerProject.getText().toString()+"' "+ 
        "WHERE _id = "+l+";"); 
      } 

      //Neues Projekt in Datenbank speichern (INSERT)    
      else 
      {     
       myDB.execSQL("INSERT INTO" +datenbank.MY_DB_TABLE +" 
                    (Name, 
                    Comment, 
                    BookingDetails, 
                    Editable, 
                    CustomerProject) 
         +"VALUES ('"+Name.getText().toString()+"',"+ 
         "'"+Comment.getText().toString()+"',"+ 
         "'"+BookingDetails.getText().toString()+"',"+ 
         "'"+i+"',"+"'"+CustomerProject.getText().toString()+"');"); 
      } 
      finish(); 
      return true;  
     } 
     else 
     { 
      Toast toast = Toast.makeText(this, "Please enter a name for the new Project!", 
                   Toast.LENGTH_SHORT); 
      toast.show(); 
     } 

    return false; 
} 

}