sqlite 报错 no such column,请问错在哪?

String sqlcar = "create table if not exists cardinformation(id integer primary key autoincrement not null, name varchar, sno varchar," +
"gender varchar, department varchar, cardCode varchar, state varchar, imgUrl varchar,img BLOB)";
db.execSQL(sqlcar);

                                ContentValues values = new ContentValues();
        ByteArrayOutputStream os = new ByteArrayOutputStream();
            bitmap.compress(Bitmap.CompressFormat.PNG, 100, os);
            values.put("img", os.toByteArray());
        String[] arr= new String[1];
        arr[0] = strings[1];

    long i =    WelcomeActivity.db.update("cardinformation",values,"cardCode = ?",arr);



             Caused by: android.database.sqlite.SQLiteException: no such column: img (code 1): , while compiling: UPDATE cardinformation SET img=? WHERE cardCode = ?

3个回答

提示没有那么多列,检查你的参数和字段是不是一一对应的(个数和类型)

values.put("img", os.toByteArray()); 你这放的是img

update("cardinformation",values,"cardCode = ?",arr); 你这需要cardCode

不一致啊

没有img这列啊 你之前加入values的 ,后面update时 找不到

z183052114
z183052114 建表的时候 有img啊 为什么表里这个字段没有创建 其他字段都有
接近 3 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
sqlite插入显示no such column:【value】
![图片说明](https://img-ask.csdn.net/upload/201805/27/1527428518_357396.png) 如图,插入报错,说没有这一列,可我那是要插入的值啊,不是列啊。 建表语句如下:CREATE TABLE food1(id integer primary key autoincrement,foodsName text,EXP NUMERIC); 大神们帮看看什么问题
android建表报错no such column: touxiang
新加了一个iIMAGE以后数据库报错,只有图中这么一行错 下面是我数据库的代码 package com.mlchelper.db; import java.sql.Blob; import com.mlchelper.dom.Infor_table; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteException; import android.database.sqlite.SQLiteOpenHelper; import android.database.sqlite.SQLiteDatabase.CursorFactory; import android.widget.EditText; public class DBInfor { private static final String DB_NAME = "person.db"; private static final String PERSON_TABLE = "peopleinfo"; private static final int DB_VERSION = 1; public static final String in_ID = "_id"; public static final String iPHONE="pnumber"; public static final String iNAME="username"; public static final String iPASSWORD="password"; public static final String iHOBBY="hobby"; public static final String iBIRTH="birth"; public static final String iIMAGE="touxiang"; private SQLiteDatabase db; private final Context context; private DBOpenHelper dbOpenHelper; public DBInfor(Context _context) { context = _context; } /** Close the database */ public void close() { if (db != null){ db.close(); db = null; } } /** Open the database */ public void open() throws SQLiteException { dbOpenHelper = new DBOpenHelper(context, DB_NAME, null, DB_VERSION); try { db = dbOpenHelper.getWritableDatabase(); } catch (SQLiteException ex) { db = dbOpenHelper.getReadableDatabase(); } } /* * 数据添加功能,及插入数据 */ public long insert( Infor_table person){ ContentValues newvalues=new ContentValues(); newvalues.put(iPHONE,person.phonenumber); newvalues.put(iNAME,person.username); newvalues.put(iBIRTH, person.birth); newvalues.put(iHOBBY, person.hobby); newvalues.put(iPASSWORD, person.password); newvalues.put(iIMAGE, person.image); return db.insert(PERSON_TABLE, null, newvalues); } /* * 查询全部表格信息 */ public Infor_table[] queryAllData(){ Cursor results=db.query(PERSON_TABLE, new String[]{in_ID,iPHONE,iNAME,iBIRTH,iHOBBY,iPASSWORD,iIMAGE}, null,null,null, null, iNAME); return ConvertToPeople(results); } /* * 查询数据转换 */ public Infor_table[] ConvertToPeople(Cursor cursor){ int resultCounts=cursor.getCount(); if(resultCounts==0||!cursor.moveToFirst()){ return null; } Infor_table[] person=new Infor_table[resultCounts]; for (int i = 0; i < resultCounts; i++) { person[i]=new Infor_table(); person[i].ID = cursor.getInt(cursor.getColumnIndex(iNAME)); person[i].phonenumber=cursor.getInt(cursor.getColumnIndex(iPHONE)); person[i].username=cursor.getString(cursor.getColumnIndex(iNAME)); person[i].birth=cursor.getString(cursor.getColumnIndex(iBIRTH)); person[i].hobby=cursor.getString(cursor.getColumnIndex(iHOBBY)); person[i].password=cursor.getString(cursor.getColumnIndex(iPASSWORD)); person[i].image=cursor.getString(cursor.getColumnIndex(iIMAGE)); cursor.moveToNext(); } return person; } /* * 更新个人信息 */ public long updateOnteData(String id ,Infor_table person){ String where = "username=?"; String[] whereArgs = new String[] {String.valueOf(id)}; ContentValues updatevalues=new ContentValues(); updatevalues.put(iNAME,person.username); updatevalues.put(iPHONE,person.phonenumber); updatevalues.put(iBIRTH,person.birth); updatevalues.put(iHOBBY, person.hobby); updatevalues.put(iPASSWORD, person.password); updatevalues.put(iIMAGE, person.image); return db.update(PERSON_TABLE, updatevalues, where , whereArgs); } /* * public void updatePoint(int idPoint, int ColumnNr, int Column, int lamp, int armor, int lampState){ String where = "id=?"; String[] whereArgs = new String[] {String.valueOf(idPoint)}; ContentValues values = new ContentValues(); values.put(PointsDB.COLUMNNR, ColumnNr); values.put(PointsDB.COLUNA, Column); values.put(PointsDB.LAMP, lamp); values.put(PointsDB.ARMOR, armor); values.put(PointsDB.LAMPSTATE, lampState); database.update(PointsDB.TABLE_NAME, values, where, whereArgs); } */ /** 静态Helper类,用于建立、更新和打开数据库*/ private static class DBOpenHelper extends SQLiteOpenHelper { public DBOpenHelper(Context context, String name, CursorFactory factory, int version) { super(context, name, factory, version); } private static final String PERSON_CREATE = "create table " + PERSON_TABLE + " (" + in_ID + " integer primary key autoincrement, "+ iPHONE + " integer, " + iNAME+" text not null, " + iBIRTH+" text,"+iHOBBY +" text, "+ iIMAGE + " text, " + iPASSWORD+" text not null);"; @Override public void onCreate(SQLiteDatabase _db) { _db.execSQL(PERSON_CREATE); _db.execSQL("insert into peopleinfo (_id,username,password,birth,hobby,pnumber,touxiang) values (1,'admin','password','1995-1-30','reading','676552',null)"); } @Override public void onUpgrade(SQLiteDatabase _db, int _oldVersion, int _newVersion) { _db.execSQL("DROP TABLE IF EXISTS " + PERSON_TABLE); onCreate(_db); } } }
android中sqlite一直报错
在应用中用到sqlite,创建了一些表,代码如下: db.execSQL("CREATE TABLE IF NOT EXISTS " + GAMES_HISTORY_TABLE+ " (" + GAME_KEY + " INTEGER PRIMARY KEY AUTOINCREMENT, " + RIGHT_DRILLS + "INTEGER NOT NULL, " + NUM_OF_DRILLS + "INTEGER NOT NULL, " + GAME_DATE + "DATE);" ); 添加记录的代码: public long addScore(int totalDrills, int numberOfRightDrills) { ContentValues cv = new ContentValues(); cv.put(RIGHT_DRILLS, numberOfRightDrills); cv.put(NUM_OF_DRILLS, totalDrills); Date date = new Date(); SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss"); cv.put(GAME_DATE, dateFormat.format(date)); return dataBase.insert(GAMES_HISTORY_TABLE, null, cv); } 常变量的声明如下: private static final String GAMES_HISTORY_TABLE = "scoers"; private static final String GAME_KEY = "game_id"; private static final String RIGHT_DRILLS = "number_of_rihgt_drill"; private static final String NUM_OF_DRILLS = "total_drill"; private static final String GAME_DATE = "game_date"; 然后在logcat中获得下面异常: 01-13 20:13:45.485: D/szipinf(658): Initializing inflate state 01-13 20:13:47.375: D/szipinf(658): Initializing inflate state 01-13 20:13:47.485: I/Database(658): sqlite returned: error code = 1, msg = table scoers has no column named game_date 01-13 20:13:47.495: E/Database(658): Error inserting game_date=13-01-2013 20:13:47 total_drill=4 number_of_rihgt_drill=0 01-13 20:13:47.495: E/Database(658): android.database.sqlite.SQLiteException: table scoers has no column named game_date: , while compiling: INSERT INTO scoers(game_date, total_drill, number_of_rihgt_drill) VALUES(?, ?, ?); 01-13 20:13:47.495: E/Database(658): at android.database.sqlite.SQLiteCompiledSql.native_compile(Native Method) 01-13 20:13:47.495: E/Database(658): at android.database.sqlite.SQLiteCompiledSql.compile(SQLiteCompiledSql.java:92) 01-13 20:13:47.495: E/Database(658): at android.database.sqlite.SQLiteCompiledSql.<init>(SQLiteCompiledSql.java:65) 01-13 20:13:47.495: E/Database(658): at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:83) 01-13 20:13:47.495: E/Database(658): at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:41) 01-13 20:13:47.495: E/Database(658): at android.database.sqlite.SQLiteDatabase.compileStatement(SQLiteDatabase.java:1149) 01-13 20:13:47.495: E/Database(658): at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1569) 01-13 20:13:47.495: E/Database(658): at android.database.sqlite.SQLiteDatabase.insert(SQLiteDatabase.java:1426) 01-13 20:13:47.495: E/Database(658): at com.simplemathgame.GameDB.addScore(GameDB.java:83) 01-13 20:13:47.495: E/Database(658): at com.simplemathgame.Results.onCreate(Results.java:99) 01-13 20:13:47.495: E/Database(658): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 01-13 20:13:47.495: E/Database(658): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611) 01-13 20:13:47.495: E/Database(658): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663) 01-13 20:13:47.495: E/Database(658): at android.app.ActivityThread.access$1500(ActivityThread.java:117) 01-13 20:13:47.495: E/Database(658): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931) 01-13 20:13:47.495: E/Database(658): at android.os.Handler.dispatchMessage(Handler.java:99) 01-13 20:13:47.495: E/Database(658): at android.os.Looper.loop(Looper.java:123) 01-13 20:13:47.495: E/Database(658): at android.app.ActivityThread.main(ActivityThread.java:3683) 01-13 20:13:47.495: E/Database(658): at java.lang.reflect.Method.invokeNative(Native Method) 01-13 20:13:47.495: E/Database(658): at java.lang.reflect.Method.invoke(Method.java:507) 01-13 20:13:47.495: E/Database(658): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 01-13 20:13:47.495: E/Database(658): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 01-13 20:13:47.495: E/Database(658): at dalvik.system.NativeStart.main(Native Method) 01-13 20:13:47.495: I/Database(658): sqlite returned: error code = 1, msg = no such column: sent 01-13 20:13:47.495: W/System.err(658): android.database.sqlite.SQLiteException: no such column: sent: , while compiling: SELECT sent FROM feedback 01-13 20:13:47.495: W/System.err(658): at android.database.sqlite.SQLiteCompiledSql.native_compile(Native Method) 01-13 20:13:47.506: W/System.err(658): at android.database.sqlite.SQLiteCompiledSql.compile(SQLiteCompiledSql.java:92) 01-13 20:13:47.506: W/System.err(658): at android.database.sqlite.SQLiteCompiledSql.<init>(SQLiteCompiledSql.java:65) 01-13 20:13:47.506: W/System.err(658): at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:83) 01-13 20:13:47.506: W/System.err(658): at android.database.sqlite.SQLiteQuery.<init>(SQLiteQuery.java:49) 01-13 20:13:47.506: W/System.err(658): at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:42) 01-13 20:13:47.506: W/System.err(658): at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1356) 01-13 20:13:47.506: W/System.err(658): at android.database.sqlite.SQLiteDatabase.queryWithFactory(SQLiteDatabase.java:1235) 01-13 20:13:47.506: W/System.err(658): at android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1189) 01-13 20:13:47.506: W/System.err(658): at android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1271) 01-13 20:13:47.506: W/System.err(658): at com.simplemathgame.GameDB.isFeedbackGiven(GameDB.java:117) 01-13 20:13:47.506: W/System.err(658): at com.simplemathgame.Results.onCreate(Results.java:100) 01-13 20:13:47.506: W/System.err(658): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 01-13 20:13:47.506: W/System.err(658): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611) 01-13 20:13:47.506: W/System.err(658): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663) 01-13 20:13:47.506: W/System.err(658): at android.app.ActivityThread.access$1500(ActivityThread.java:117) 01-13 20:13:47.515: W/System.err(658): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931) 01-13 20:13:47.515: W/System.err(658): at android.os.Handler.dispatchMessage(Handler.java:99) 01-13 20:13:47.515: W/System.err(658): at android.os.Looper.loop(Looper.java:123) 01-13 20:13:47.515: W/System.err(658): at android.app.ActivityThread.main(ActivityThread.java:3683) 01-13 20:13:47.515: W/System.err(658): at java.lang.reflect.Method.invokeNative(Native Method) 01-13 20:13:47.515: W/System.err(658): at java.lang.reflect.Method.invoke(Method.java:507) 01-13 20:13:47.515: W/System.err(658): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 01-13 20:13:47.515: W/System.err(658): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 01-13 20:13:47.515: W/System.err(658): at dalvik.system.NativeStart.main(Native Method) 01-13 20:13:47.525: W/db(658): problem
web开发时sqlalchemy报错
原本运行正常的web服务,在数据库模型中加了一行之后报错: sqlalchemy.exc.OperationalError sqlalchemy.exc.OperationalError: (OperationalError) no such column: comments.confirmed 'SELECT count(*) AS count_1 \nFROM (SELECT comments.id AS comments_id, comments.author_id AS comments_author_id, comments.post_id AS comments_post_id, comments.confirmed AS comments_confirmed \nFROM comments \nWHERE ? = comments.post_id) AS anon_1' (104,) 用的是python内置sqlite,代码如下: class Comment(db.Model): __tablename__ = 'comments' id = db.Column(db.Integer, primary_key=True) body = db.Column(db.Text) body_html = db.Column(db.Text) timestamp = db.Column(db.DateTime, index=True, default=datetime.utcnow) disabled = db.Column(db.Boolean) author_id = db.Column(db.Integer, db.ForeignKey('users.id')) post_id = db.Column(db.Integer, db.ForeignKey('posts.id')) confirmed = db.Column(db.Boolean, default=False) ##就只是加了这一行,添加后也更新过数据库模型 shell中能查到这一列: (venv) F:\flask\flask1>python manage.py db upgrade INFO [alembic.migration] Context impl SQLiteImpl. INFO [alembic.migration] Will assume non-transactional DDL. (venv) F:\flask\flask1>python manage.py shell ~~Comment.confirmed sqlalchemy.orm.attributes.InstrumentedAttribute object at 0x000000000436BB70> 求帮忙,自学中……(:哭
为什么运行查询和删除数据库时闪退?
MainActivity ``` package com.example.administrator.diary; import android.content.Context; import android.content.Intent; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; public class MainActivity extends AppCompatActivity { private Button mm_login,yk_login; static final String db_pass="passwordDB"; static final String tb_pass="passwordTB"; SQLiteDatabase db; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //调用创建数据库方法 CREATE(); //调用按钮监听器方法 init(); //游客跳转 yk_login.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //为了跳转到日记界面,并实现日记功能 Intent YD=new Intent(MainActivity.this,DiaryActivity.class); startActivity(YD); } }); } //打开或创建数据库 public void CREATE(){ db = openOrCreateDatabase(db_pass, Context.MODE_PRIVATE, null); String createTable = " CREATE TABLE IF NOT EXISTS " + tb_pass + "(password_id VARCHAR (4) PRIMARY KEY)"; db.execSQL(createTable); } //获取activity_main的控件 public void init(){ mm_login=findViewById(R.id.but_mm_login); yk_login=findViewById(R.id.but_yk_login); //获取数据库数据项 Cursor cur=db.rawQuery("SELECT * FROM passwordTB",null); int amount=cur.getCount(); //数据库为0则表示没有密码存在数据库,密码跳转到注册密码界面,游客可直接登录日记界面 if (amount==0){ mm_login.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //为了跳转到注册界面,并实现注册功能 Intent MR=new Intent(MainActivity.this,RegisterActivity.class); startActivity(MR); } }); yk_login.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //为了跳转到日记界面,并实现日记功能 Intent YD=new Intent(MainActivity.this,DiaryActivity.class); startActivity(YD); } }); } else{//数据项不为0,则有密码已存在 mm_login.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //为了跳转到密码输入界面,并实现密码输入功能 Intent MS=new Intent(MainActivity.this,SendActivity.class); startActivity(MS); } }); //游客按钮隐藏 yk_login.setVisibility(Button.INVISIBLE); } } } ``` 登录代码 ``` package com.example.administrator.diary; import android.content.Context; import android.content.Intent; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; public class SendActivity extends AppCompatActivity { Button log; EditText onesend,twosend; static final String db_pass="passwordDB"; static final String tb_pass="passwordTB"; SQLiteDatabase db; String f_send; String s_send; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_send); //获取控件地址 log=findViewById(R.id.btn_log); onesend=findViewById(R.id.send); twosend=findViewById(R.id.resend); //获取密码 f_send = onesend.getText().toString(); s_send = twosend.getText().toString(); //打开或创建数据库 db=openOrCreateDatabase(db_pass, Context.MODE_PRIVATE,null); String createTable=" CREATE TABLE IF NOT EXISTS "+tb_pass+"(password VARCHAR (4))"; db.execSQL(createTable); //调用登录按钮方法 login(); } //对比输入密码和设置密码是否相同 private void check(){ //读取数据库中设置的密码 Cursor c=db.rawQuery("SELECT password FROM passwordTB",null); String p=c.getString(0); //判断是否相同 if (f_send.equals(p)&&s_send.equals(p)){ Toast.makeText(SendActivity.this,"登录成功",Toast.LENGTH_SHORT).show(); //判断相同后跳转到日记界面 Intent SD=new Intent(SendActivity.this,DiaryActivity.class); startActivity(SD); } //不同提醒用户 else Toast.makeText(SendActivity.this,"密码输入不对,请重新输入",Toast.LENGTH_SHORT).show(); } //登录按钮功能 private void login(){ log.setOnClickListener(new View.OnClickListener() { @Override //监听器 public void onClick(View v) { //调用检验密码方法 check(); } }); } } ``` 删除数据库代码 ``` package com.example.administrator.diary; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.Button; import android.widget.Toast; public class DiaryActivity extends AppCompatActivity { private Button de; static final String db_pass="passwordDB"; static final String tb_pass="passwordTB"; SQLiteDatabase db; Cursor cursor; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_diary); //获取控件位置 de=findViewById(R.id.delete); //打开或创建数据库 db=openOrCreateDatabase(db_pass, Context.MODE_PRIVATE,null); String createTable=" CREATE TABLE IF NOT EXISTS "+tb_pass+"(password VARCHAR (4))"; db.execSQL(createTable); Ondelete(); } //删除密码按钮方法 private void Ondelete(){ de.setOnClickListener(new View.OnClickListener() { @Override //监听器 public void onClick(View v) { //删除数据表方法 String sql = "delete from passwordTB where id = 0"; db.execSQL(sql); Toast.makeText(DiaryActivity.this,"删除成功",Toast.LENGTH_SHORT).show(); } }); } } ``` 建表插表代码 ``` //打开或创建数据库 db=openOrCreateDatabase(db_pass, Context.MODE_PRIVATE,null); String createTable=" CREATE TABLE IF NOT EXISTS "+tb_pass+"(password VARCHAR (4))"; db.execSQL(createTable); compare(); zc(); } //添加新密码到数据库中 private void addData(String password){ ContentValues cv=new ContentValues(1); cv.put(" password",password); db.insert(tb_pass,null,cv); } ``` 闪退后报错 ``` 2020-02-04 17:22:49.787 15729-15729/com.example.administrator.diary E/SQLiteLog: (1) no such column: id 2020-02-04 17:22:49.787 15729-15729/com.example.administrator.diary D/AndroidRuntime: Shutting down VM 2020-02-04 17:22:49.788 15729-15729/com.example.administrator.diary E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.administrator.diary, PID: 15729 android.database.sqlite.SQLiteException: no such column: id (code 1 SQLITE_ERROR): , while compiling: delete from passwordTB where id = 0 at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method) at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:985) at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:592) at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:590) at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:61) at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:33) at android.database.sqlite.SQLiteDatabase.executeSql(SQLiteDatabase.java:1802) at android.database.sqlite.SQLiteDatabase.execSQL(SQLiteDatabase.java:1730) at com.example.administrator.diary.DiaryActivity$1.onClick(DiaryActivity.java:39) at android.view.View.performClick(View.java:6913) at android.view.View.performClickInternal(View.java:6890) at android.view.View.access$3200(View.java:792) at android.view.View$PerformClick.run(View.java:27158) at android.os.Handler.handleCallback(Handler.java:873) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:209) at android.app.ActivityThread.main(ActivityThread.java:7021) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:486) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:872) ``` 程序可以运行,但点击登录按钮或删除按钮后都会返回到mainactivity的界面,再按一次登录或删除就崩溃了,而且还没有达到删除数据库的目的,有大神知道是哪里出问题了吗?
Python数据库案例,书上的代码为什么不能正常运行呢?
#根据文件ABBREV.txt创建数据库 import sqlite3 def convert(value): if value.startswith('~'): return value.strip('~') if not value: value = '0' return float(value) conn = sqlite3.connect('food.db') curs = conn.cursor() curs.execute(''' CREATE TABLE food( id TEXT PRIMARY KEY, desc TEXT, water FLOAT, kcal FLOAT, protein FLOAT, fat FLOAT, ash FLOAT, carbs FLOAT, fiber FLOAT, sugar FLOAT ) ''') query = 'INSERT INTO food VALUES (?,?,?,?,?,?,?,?,?,?)' for line in open('ABBREV.txt'): fields = line.split('^') vals = [convert(f) for f in fields[:10]] curs.execute(query,vals) conn.commit() conn.close() #运行完上面的程序,再运行下面的数据库查询程序 import sqlite3,sys conn = sqlite3.connect('food.db') curs = conn.cursor() query = 'SELECT * FROM food WHERE %s' % sys.argv[1:] #书上是sys.argv[1],报错IndexError: list index out of range print query curs.execute(query) names = [f[0] for f in curs.description] for row in curs.fetchall(): for pair in zip(names,row): print '%s:%s' % pair print #在解释器上运行上面的数据库查询程序,报错信息如下: SELECT * FROM food WHERE [] Traceback (most recent call last): File "H:\PythonProgram\food_query.py", line 8, in <module> curs.execute(query) OperationalError: no such column: #ABBREV.txt截图 ![图片说明](https://img-ask.csdn.net/upload/201702/08/1486561496_677502.jpg)
动态规划入门到熟悉,看不懂来打我啊
持续更新。。。。。。 2.1斐波那契系列问题 2.2矩阵系列问题 2.3跳跃系列问题 3.1 01背包 3.2 完全背包 3.3多重背包 3.4 一些变形选讲 2.1斐波那契系列问题 在数学上,斐波纳契数列以如下被以递归的方法定义:F(0)=0,F(1)=1, F(n)=F(n-1)+F(n-2)(n&gt;=2,n∈N*)根据定义,前十项为1, 1, 2, 3...
程序员,职场上请远离这种人!
对有些职场人来讲,甩锅就是一种生存手段。01.从大学打篮球说起上大学的时候喜欢打篮球,然后我又特别喜欢抢篮板,经常是跳起来的时候没事,落下来的时候偶尔会踩到别人的脚上,于...
终于明白阿里百度这样的大公司,为什么面试经常拿ThreadLocal考验求职者了
点击上面↑「爱开发」关注我们每晚10点,捕获技术思考和创业资源洞察什么是ThreadLocalThreadLocal是一个本地线程副本变量工具类,各个线程都拥有一份线程私...
对计算机专业来说学历真的重要吗?
我本科学校是渣渣二本,研究生学校是985,现在毕业五年,校招笔试、面试,社招面试参加了两年了,就我个人的经历来说下这个问题。 这篇文章很长,但绝对是精华,相信我,读完以后,你会知道学历不好的解决方案,记得帮我点赞哦。 先说结论,无论赞不赞同,它本质就是这样:对于技术类工作而言,学历五年以内非常重要,但有办法弥补。五年以后,不重要。 目录: 张雪峰讲述的事实 我看到的事实 为什么会这样 ...
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它是一个过程,是一个不断累积、不断沉淀、不断总结、善于传达自己的个人见解以及乐于分享的过程。
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过...
Python——画一棵漂亮的樱花树(不同种樱花+玫瑰+圣诞树喔)
最近翻到一篇知乎,上面有不少用Python(大多是turtle库)绘制的树图,感觉很漂亮,我整理了一下,挑了一些我觉得不错的代码分享给大家(这些我都测试过,确实可以生成) one 樱花树 动态生成樱花 效果图(这个是动态的): 实现代码 import turtle as T import random import time # 画樱花的躯干(60,t) def Tree(branch, ...
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
一个读研让我损失了一百万的真实故事
关注我!只要10分钟,包你学会数据分析 毕业后,应该就业还是考研? 我刚出国留学那会儿,就惊讶的发现,外国local95%都不会选择读研 他们说,硕士学费很贵,时间宝贵,老板不认,所以很费 当几乎所有人都是本科学历时,硕士学历反而像个异类 在老板眼里,三年硕士远远不如3年的工作经验实用 他们甚至专门为拒绝高学历者发明了一个词,叫overoccupie...
Python 植物大战僵尸代码实现(2):植物卡片选择和种植
这篇文章要介绍的是: - 上方植物卡片栏的实现。 - 点击植物卡片,鼠标切换为植物图片。 - 鼠标移动时,判断当前在哪个方格中,并显示半透明的植物作为提示。
西游记团队中如果需要裁掉一个人,会先裁掉谁?
2019年互联网寒冬,大批企业开始裁员,下图是网上流传的一张截图: 裁员不可避免,那如何才能做到不管大环境如何变化,自身不受影响呢? 我们先来看一个有意思的故事,如果西游记取经团队需要裁员一名,会裁掉谁呢,为什么? 西游记团队组成: 1.唐僧 作为团队teamleader,有很坚韧的品性和极高的原则性,不达目的不罢休,遇到任何问题,都没有退缩过,又很得上司支持和赏识(直接得到唐太宗的任命,既给袈...
shell脚本:备份数据库、代码上线
备份MySQL数据库 场景: 一台MySQL服务器,跑着5个数据库,在没有做主从的情况下,需要对这5个库进行备份 需求: 1)每天备份一次,需要备份所有的库 2)把备份数据存放到/data/backup/下 3)备份文件名称格式示例:dbname-2019-11-23.sql 4)需要对1天以前的所有sql文件压缩,格式为gzip 5)本地数据保留1周 6)需要把备份的数据同步到远程备份中心,假如...
聊聊C语言和指针的本质
坐着绿皮车上海到杭州,24块钱,很宽敞,在火车上非正式地聊几句。 很多编程语言都以 “没有指针” 作为自己的优势来宣传,然而,对于C语言,指针却是与生俱来的。 那么,什么是指针,为什么大家都想避开指针。 很简单, 指针就是地址,当一个地址作为一个变量存在时,它就被叫做指针,该变量的类型,自然就是指针类型。 指针的作用就是,给出一个指针,取出该指针指向地址处的值。为了理解本质,我们从计算机模型说起...
为什么你学不过动态规划?告别动态规划,谈谈我的经验
动态规划难吗?说实话,我觉得很难,特别是对于初学者来说,我当时入门动态规划的时候,是看 0-1 背包问题,当时真的是一脸懵逼。后来,我遇到动态规划的题,看的懂答案,但就是自己不会做,不知道怎么下手。就像做递归的题,看的懂答案,但下不了手,关于递归的,我之前也写过一篇套路的文章,如果对递归不大懂的,强烈建议看一看:为什么你学不会递归,告别递归,谈谈我的经验 对于动态规划,春招秋招时好多题都会用到动态...
程序员一般通过什么途径接私活?
二哥,你好,我想知道一般程序猿都如何接私活,我也想接,能告诉我一些方法吗? 上面是一个读者“烦不烦”问我的一个问题。其实不止是“烦不烦”,还有很多读者问过我类似这样的问题。 我接的私活不算多,挣到的钱也没有多少,加起来不到 20W。说实话,这个数目说出来我是有点心虚的,毕竟太少了,大家轻喷。但我想,恰好配得上“一般程序员”这个称号啊。毕竟苍蝇再小也是肉,我也算是有经验的人了。 唾弃接私活、做外...
字节跳动面试官这样问消息队列:分布式事务、重复消费、顺序消费,我整理了一下
你知道的越多,你不知道的越多 点赞再看,养成习惯 GitHub上已经开源 https://github.com/JavaFamily 有一线大厂面试点脑图、个人联系方式和人才交流群,欢迎Star和完善 前言 消息队列在互联网技术存储方面使用如此广泛,几乎所有的后端技术面试官都要在消息队列的使用和原理方面对小伙伴们进行360°的刁难。 作为一个在互联网公司面一次拿一次Offer的面霸...
如何安装 IntelliJ IDEA 最新版本——详细教程
IntelliJ IDEA 简称 IDEA,被业界公认为最好的 Java 集成开发工具,尤其在智能代码助手、代码自动提示、代码重构、代码版本管理(Git、SVN、Maven)、单元测试、代码分析等方面有着亮眼的发挥。IDEA 产于捷克,开发人员以严谨著称的东欧程序员为主。IDEA 分为社区版和付费版两个版本。 我呢,一直是 Eclipse 的忠实粉丝,差不多十年的老用户了。很早就接触到了 IDEA...
面试还搞不懂redis,快看看这40道面试题(含答案和思维导图)
Redis 面试题 1、什么是 Redis?. 2、Redis 的数据类型? 3、使用 Redis 有哪些好处? 4、Redis 相比 Memcached 有哪些优势? 5、Memcache 与 Redis 的区别都有哪些? 6、Redis 是单进程单线程的? 7、一个字符串类型的值能存储最大容量是多少? 8、Redis 的持久化机制是什么?各自的优缺点? 9、Redis 常见性...
大学四年自学走来,这些珍藏的「实用工具/学习网站」我全贡献出来了
知乎高赞:文中列举了互联网一线大厂程序员都在用的工具集合,涉及面非常广,小白和老手都可以进来看看,或许有新收获。
为什么要推荐大家学习字节码?
配套视频: 为什么推荐大家学习Java字节码 https://www.bilibili.com/video/av77600176/ 一、背景 本文主要探讨:为什么要学习 JVM 字节码? 可能很多人会觉得没必要,因为平时开发用不到,而且不学这个也没耽误学习。 但是这里分享一点感悟,即人总是根据自己已经掌握的知识和技能来解决问题的。 这里有个悖论,有时候你觉得有些技术没用恰恰是...
【超详细分析】关于三次握手与四次挥手面试官想考我们什么?
在面试中,三次握手和四次挥手可以说是问的最频繁的一个知识点了,我相信大家也都看过很多关于三次握手与四次挥手的文章,今天的这篇文章,重点是围绕着面试,我们应该掌握哪些比较重要的点,哪些是比较被面试官给问到的,我觉得如果你能把我下面列举的一些点都记住、理解,我想就差不多了。 三次握手 当面试官问你为什么需要有三次握手、三次握手的作用、讲讲三次三次握手的时候,我想很多人会这样回答: 首先很多人会先讲下握...
压测学习总结(1)——高并发性能指标:QPS、TPS、RT、吞吐量详解
一、QPS,每秒查询 QPS:Queries Per Second意思是“每秒查询率”,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。互联网中,作为域名系统服务器的机器的性能经常用每秒查询率来衡量。 二、TPS,每秒事务 TPS:是TransactionsPerSecond的缩写,也就是事务数/秒。它是软件测试结果的测量单位。一个事务是指一...
新程序员七宗罪
当我发表这篇文章《为什么每个工程师都应该开始考虑开发中的分析和编程技能呢?》时,我从未想到它会对读者产生如此积极的影响。那些想要开始探索编程和数据科学领域的人向我寻求建议;还有一些人问我下一篇文章的发布日期;还有许多人询问如何顺利过渡到这个职业。我非常鼓励大家继续分享我在这个旅程的经验,学习,成功和失败,以帮助尽可能多的人过渡到一个充满无数好处和机会的职业生涯。亲爱的读者,谢谢你。 -罗伯特。 ...
2019年Spring Boot面试都问了什么?快看看这22道面试题!
Spring Boot 面试题 1、什么是 Spring Boot? 2、Spring Boot 有哪些优点? 3、什么是 JavaConfig? 4、如何重新加载 Spring Boot 上的更改,而无需重新启动服务器? 5、Spring Boot 中的监视器是什么? 6、如何在 Spring Boot 中禁用 Actuator 端点安全性? 7、如何在自定义端口上运行 Sprin...
【图解】记一次手撕算法面试:字节跳动的面试官把我四连击了
字节跳动这家公司,应该是所有秋招的公司中,对算法最重视的一个了,每次面试基本都会让你手撕算法,今天这篇文章就记录下当时被问到的几个算法题,并且每个算法题我都详细着给出了最优解,下面再现当时的面试场景。看完一定让你有所收获 一、小牛试刀:有效括号 大部分情况下,面试官都会问一个不怎么难的问题,不过你千万别太开心,因为这道题往往可以拓展出更多有难度的问题,或者一道题看起来很简单,但是给出最优解,确实很...
面试官:关于Java性能优化,你有什么技巧
通过使用一些辅助性工具来找到程序中的瓶颈,然后就可以对瓶颈部分的代码进行优化。 一般有两种方案:即优化代码或更改设计方法。我们一般会选择后者,因为不去调用以下代码要比调用一些优化的代码更能提高程序的性能。而一个设计良好的程序能够精简代码,从而提高性能。 下面将提供一些在JAVA程序的设计和编码中,为了能够提高JAVA程序的性能,而经常采用的一些方法和技巧。 1.对象的生成和大小的调整。 J...
【图解算法面试】记一次面试:说说游戏中的敏感词过滤是如何实现的?
版权声明:本文为苦逼的码农原创。未经同意禁止任何形式转载,特别是那些复制粘贴到别的平台的,否则,必定追究。欢迎大家多多转发,谢谢。 小秋今天去面试了,面试官问了一个与敏感词过滤算法相关的问题,然而小秋对敏感词过滤算法一点也没听说过。于是,有了下下事情的发生… 面试官开怼 面试官:玩过王者荣耀吧?了解过敏感词过滤吗?,例如在游戏里,如果我们发送“你在干嘛?麻痹演员啊你?”,由于“麻痹”是一个敏感词,...
GitHub 标星 1.6w+,我发现了一个宝藏项目,作为编程新手有福了!
大家好,我是 Rocky0429,一个最近老在 GitHub 上闲逛的蒟蒻… 特别惭愧的是,虽然我很早就知道 GitHub,但是学会逛 GitHub 的时间特别晚。当时一方面是因为菜,看着这种全是英文的东西难受,不知道该怎么去玩,另一方面是一直在搞 ACM,没有做一些工程类的项目,所以想当然的以为和 GitHub 也没什么关系(当然这种想法是错误的)。 后来自己花了一个星期看完了 Pyt...
杭漂程序员2019的心路历程,还不起助学贷款,交不起房租,披荆斩棘终雨过天晴
一个杭漂2019的心酸历程,一路披荆斩棘终于还是雨过天晴。
我采访了同事,让他掏出了每天都会浏览的干货网站
前言只有光头才能变强。文本已收录至我的GitHub精选文章,欢迎Star:https://github.com/ZhongFuCheng3y/3y在周六的晚上,我日常去到公司写文章。想写...
Java知识体系最强总结(2020版)
更新于2019-12-15 10:38:00 本人从事Java开发已多年,平时有记录问题解决方案和总结知识点的习惯,整理了一些有关Java的知识体系,这不是最终版,会不定期的更新。也算是记录自己在从事编程工作的成长足迹,通过博客可以促进博主与阅读者的共同进步,结交更多志同道合的朋友。特此分享给大家,本人见识有限,写的博客难免有错误或者疏忽的地方,还望各位大佬指点,在此表示感激不尽。 文章目录...
计算机专业的书普遍都这么贵,你们都是怎么获取资源的?
介绍几个可以下载编程电子书籍的网站。 1.Github Github上编程书资源很多,你可以根据类型和语言去搜索。推荐几个热门的: free-programming-books-zh_CN:58K 星的GitHub,编程语言、WEB、函数、大数据、操作系统、在线课程、数据库相关书籍应有尽有,共有几百本。 Go语言高级编程:涵盖CGO,Go汇编语言,RPC实现,Protobuf插件实现,Web框架实...
2020年一线城市程序员工资大调查
人才需求 一线城市共发布岗位38115个,招聘120827人。 其中 beijing 22805 guangzhou 25081 shanghai 39614 shenzhen 33327 工资分布 2020年中国一线城市程序员的平均工资为16285元,工资中位数为14583元,其中95%的人的工资位于5000到20000元之间。 和往年数据比较: yea...
毕业5年,我问遍了身边的大佬,总结了他们的学习方法
我问了身边10个大佬,总结了他们的学习方法,原来成功都是有迹可循的。
这些软件太强了,Windows必装!尤其程序员!
Windows可谓是大多数人的生产力工具,集娱乐办公于一体,虽然在程序员这个群体中都说苹果是信仰,但是大部分不都是从Windows过来的,而且现在依然有很多的程序员用Windows。 所以,今天我就把我私藏的Windows必装的软件分享给大家,如果有一个你没有用过甚至没有听过,那你就赚了????,这可都是提升你幸福感的高效率生产力工具哦! 走起!???? NO、1 ScreenToGif 屏幕,摄像头和白板...
大学四年因为知道了这32个网站,我成了别人眼中的大神!
依稀记得,毕业那天,我们导员发给我毕业证的时候对我说“你可是咱们系的风云人物啊”,哎呀,别提当时多开心啦????,嗯,我们导员是所有导员中最帅的一个,真的???? 不过,导员说的是实话,很多人都叫我大神的,为啥,因为我知道这32个网站啊,你说强不强????,这次是绝对的干货,看好啦,走起来! PS:每个网站都是学计算机混互联网必须知道的,真的牛杯,我就不过多介绍了,大家自行探索,觉得没用的,尽管留言吐槽吧???? 社...
史上最全的IDEA快捷键总结
现在Idea成了主流开发工具,这篇博客对其使用的快捷键做了总结,希望对大家的开发工作有所帮助。
2020年,冯唐49岁:我给20、30岁IT职场年轻人的建议
点击“技术领导力”关注∆每天早上8:30推送 作者|Mr.K 编辑| Emma 来源|技术领导力(ID:jishulingdaoli) 前天的推文《冯唐:职场人35岁以后,方法论比经验重要》,收到了不少读者的反馈,觉得挺受启发。其实,冯唐写了不少关于职场方面的文章,都挺不错的。可惜大家只记住了“春风十里不如你”、“如何避免成为油腻腻的中年人”等不那么正经的文章。 本文整理了冯...
春节不出门!这三款超好评编程游戏,好玩到停不下来
By 超神经场景描述:春节马上就要来临,在这个假期里,怎么能让自己放松,又不至于生疏了自己的老本行?不妨来玩一下编程向的小游戏吧,超神经在此整理了三款好玩有趣又有深度的游戏,快看看是不是...
作为一个程序员,CPU的这些硬核知识你必须会!
CPU对每个程序员来说,是个既熟悉又陌生的东西? 如果你只知道CPU是中央处理器的话,那可能对你并没有什么用,那么作为程序员的我们,必须要搞懂的就是CPU这家伙是如何运行的,尤其要搞懂它里面的寄存器是怎么一回事,因为这将让你从底层明白程序的运行机制。 随我一起,来好好认识下CPU这货吧 把CPU掰开来看 对于CPU来说,我们首先就要搞明白它是怎么回事,也就是它的内部构造,当然,CPU那么牛的一个东...
Python实战:抓肺炎疫情实时数据,画2019-nCoV疫情地图
今天,群里白垩老师问如何用python画武汉肺炎疫情地图。白垩老师是研究海洋生态与地球生物的学者,国家重点实验室成员,于不惑之年学习python,实为我等学习楷模。先前我并没有关注武汉肺炎的具体数据,也没有画过类似的数据分布图。于是就拿了两个小时,专门研究了一下,遂成此文。
作为一个程序员,内存和磁盘的这些事情,你不得不知道啊!!!
截止目前,我已经分享了如下几篇文章: 一个程序在计算机中是如何运行的?超级干货!!! 作为一个程序员,CPU的这些硬核知识你必须会! 作为一个程序员,内存的这些硬核知识你必须懂! 这些知识可以说是我们之前都不太重视的基础知识,可能大家在上大学的时候都学习过了,但是嘞,当时由于老师讲解的没那么有趣,又加上这些知识本身就比较枯燥,所以嘞,大家当初几乎等于没学。 再说啦,学习这些,也看不出来有什么用啊!...
这个世界上人真的分三六九等,你信吗?
偶然间,在知乎上看到一个问题 一时间,勾起了我深深的回忆。 以前在厂里打过两次工,做过家教,干过辅导班,做过中介。零下几度的晚上,贴过广告,满脸、满手地长冻疮。 再回首那段岁月,虽然苦,但让我学会了坚持和忍耐。让我明白了,在这个世界上,无论环境多么的恶劣,只要心存希望,星星之火,亦可燎原。 下文是原回答,希望能对你能有所启发。 如果我说,这个世界上人真的分三六九等,...
相关热词 c# id读写器 c#俄罗斯方块源码 c# linq原理 c# 装箱有什么用 c#集合 复制 c# 一个字符串分组 c++和c#哪个就业率高 c# 批量动态创建控件 c# 模块和程序集的区别 c# gmap 截图
立即提问