2012-02-06 47 views
0

我很高兴这个网站在这里。它每次都帮助我。如何使用文本视图值查询数据库行等于文本视图值?

所以我的新问题是,我已经从一个活动传递给另一个值,并将该值设置为文本视图。该值始终是数字。然后,我使用“在选择的菜单项上”将该值传递给另一个活动并将该值设置为文本视图。我所要做的就是使用该值(它是数字并表示与数据关联的行ID)来查询数据库并返回与前面提到的数值关联的行。然后填充相同活动的相应编辑文本或文本视图。

这里就是我所说的文本值(TV1)

​​

和查询

public Cursor fetchRow(TextView tv1) throws SQLException { 

      Cursor mCursor = 

       mDb.query(true,DATABASE_TABLE, new String[] {KEY_ROWID, KEY_NAME, 
         NICBASEML, NICDROPS, NICPERCT, PGML, PGDROPS,PGPERCT, 
         VGML,VGDROPS,VGPERCT, WAPML, WAPDROPS, WAPPERCT, 
         FLV1NAME, FLV1ML, FLV1DROPS, FLV1PERCT, 
         FLV2NAME, FLV2ML, FLV2DROPS, FLV2PERCT, 
         FLV3NAME, FLV3ML, FLV3DROPS, FLV3PERCT, 
         FLV4NAME, FLV4ML, FLV4DROPS, FLV4PERCT, 
         DROPSML, AMOUNT, FINALNIC, BPG, BVG, BASENIC}, KEY_ROWID + "=" + tv1, null, null, null, null, null); 

      if (mCursor != null) { 
       mCursor.moveToFirst(); 
      } 
      return mCursor; 

     } 

这是我现在得到的错误。

02-07 12:14:16.120:E/AndroidRuntime(2713):引起:android.database.sqlite.SQLiteException:“@ 405dcd48”附近:语法错误:,编译时:SELECT DISTINCT _id,name, vgml,vgml,wapml,wapper,flv1,flv1ml,flv1drops,flv1perct,flv2name,flv2ml,flv2drops,flv2perct,flv3name,flv3ml,flv3drops,flv3perct,flv4名称,flv3perct, flv4ml,flv4drops,flv4perct,dropsml,金额,finalnic,bpg,bpg,basenic从食谱WHERE [email protected]

嗯卡在这一个。错误@ 405dcd48在哪里?

回答

0

以下是解决方案。花了好几个小时(2天)才搞清楚了,然后就成了dhooo了!亲手去面对一刻。但永远不会少,这里是解决其他问题的解决方案。在你的宣言来填充字段(在这种情况下,取(排)

这样做:。

private void populateFields() { 

String row = tv1.getText().toString();//String to get the textview of the rowid 

     if (tv1!= null) { //Checking to see if the field is not empty to proceed 

      Cursor note = mDbHelper.fetchRow(row);//Calling my cursor to manage data 
      startManagingCursor(note);//Starting the management and retrieve data 

您将得到错误如上,然后一个空指针异常这可以通过声明固定你的领域 - >(txtbox1 =(TextView的)findViewById(R.id.textView22);.

你的数据库管理员需要配置一个字符串

像这样:

现在,您可以使用textview或editview值等于要查找的数据的行ID来检索行中的数据。