String sql = "CREATE  TABLE pic (_id INTEGRE PRIMARY KEY  AUTOINCREMENT  NOT NULL , fileName VARCHAR, description VARCHAR)"; db.execSQL(sql);用的安卓sdk4.1
执行到db.execSQL(sql);就报错,显示Source not found,
这是怎么回事,是不是sql语句写错了

解决方案 »

  1.   


    改了还是一样,也不知道具体是什么错
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
      

  2.   

    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.hellosqlite_/com.example.hellosqlite_.MainActivity}: java.lang.IllegalArgumentException: column 'filename' does not exist
      

  3.   


    package com.example.hellosqlite_;import android.os.Bundle;
    import android.app.Activity;
    import android.content.ContentValues;
    import android.database.Cursor;
    import android.database.sqlite.SQLiteDatabase;
    import android.view.Menu;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.AdapterView;
    import android.widget.AdapterView.OnItemSelectedListener;
    import android.widget.Button;
    import android.widget.SimpleCursorAdapter;
    import android.widget.Spinner;
    import android.widget.TextView;
    import android.widget.Toast;public class MainActivity extends Activity {
    private SQLiteDatabase db;
    private String db_Name = "sqliteTest";//数据库名
    private String table_name = "pic";//表名
    private DBHelp dbHelp = new DBHelp(this, db_Name, null, 1);//辅助对象


        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
             setContentView(R.layout.activity_main);
            
            Button btn1 = (Button)findViewById(R.id.button1);
            Button btn2 = (Button)findViewById(R.id.button2);
            Button btn3 = (Button)findViewById(R.id.button3);
            Button btn4 = (Button)findViewById(R.id.button4);
            
            db = dbHelp.getWritableDatabase();
            initDB(db);
            updateList();
            
            OnClickListener oc1 = new OnClickListener() {

    @Override
    public void onClick(View v) {
    // TODO Auto-generated method stub
    ContentValues cv = new ContentValues();
    switch (v.getId()) {
    case R.id.button1:
    cv.put("filename", "pic5.jpg");
    cv.put("description", "图片5");
    long long1 = db.insert(table_name, "", cv);
    if(long1 == -1){
       Toast.makeText(MainActivity.this, "id为" + long1 + "的图片添加失败", Toast.LENGTH_SHORT).show();
    }else{
       Toast.makeText(MainActivity.this, "id为" + long1 + "的图片添加成功", Toast.LENGTH_SHORT).show();
    }
    updateList();
    break; default:
    break;
    }
    }
    };
            
        }    @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            getMenuInflater().inflate(R.menu.activity_main, menu);
            return true;
        }
        
        //初始化数据
        private void initDB(SQLiteDatabase database){
         ContentValues contentValues= new ContentValues();
        
         contentValues.put("filename", "x1.jpg");
         contentValues.put("description", "图片11111111");
         database.insert(table_name, "", contentValues);
        
         contentValues.put("filename", "x2.jpg");
         contentValues.put("description", "图片222");
         database.insert(table_name, "", contentValues);
        
         contentValues.put("filename", "x3.jpg");
         contentValues.put("description", "图片333333333");
         database.insert(table_name, "", contentValues);
        }
        
        //更新数据
        private void updateList(){
         TextView textView = (TextView)findViewById(R.id.textView1);
         Spinner spinner = (Spinner)findViewById(R.id.spinner1);
        
         final Cursor cursor = db.query("pic", null, null, null, null, null, null);
         SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, android.R.layout.simple_spinner_dropdown_item,
                                                       cursor,
                                                       new String[]{"filename", "description"},
                                                       new int[]{android.R.id.text1, android.R.id.text2});
        
         adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
         spinner.setAdapter(adapter);
        
         OnItemSelectedListener itemSelectedListener = new OnItemSelectedListener() { @Override
    public void onItemSelected(AdapterView<?> parent, View view,
    int position, long id) {
    // TODO Auto-generated method stub

    } @Override
    public void onNothingSelected(AdapterView<?> parent) {
    // TODO Auto-generated method stub

    } };


    spinner.setOnItemSelectedListener(itemSelectedListener);
        }
        
        
        //窗口销毁时删除表中数据
        @Override
        public void onDestroy() {
    super.onDestroy();
    db.delete(table_name, null, null);
    updateList();
    }
    }
      

  4.   

    http://www.apkbus.com/android-655-1-1.html
    我代码是照着这个帖子里的敲出来的
      

  5.   

    package com.example.hellosqlite_;import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteDatabase.CursorFactory;import android.database.sqlite.SQLiteOpenHelper;
    public class DBHelp extends SQLiteOpenHelper {

    public DBHelp(Context context, String name, CursorFactory factory,int version) {
    super(context, name, factory, version);
    } //辅助类建立时运行该方法
    @Override
    public void onCreate(SQLiteDatabase db) {
    // TODO Auto-generated method stub
    String sql = "CREATE  TABLE pic3 (_id INTEGER PRIMARY KEY  AUTOINCREMENT  NOT NULL , fileName VARCHAR, description VARCHAR)";
    // String sql = "CREATE  TABLE pic5 (fileName VARCHAR)";
    db.execSQL(sql); } @Override
    public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {
    // TODO Auto-generated method stub }}