Android的 - 内容价值超过写现有的行 [英] Android - Content Values over writing existing rows

查看:95
本文介绍了Android的 - 内容价值超过写现有的行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想插入使用 ContentValues​​ 的价值观,我插5值5列我运行应用程序之后,我只有一行最后一组 ContentValues​​的值。前四个组将不插入。

  ContentValues​​ CV =新ContentValues​​();
       cv.put(名,CS科技);
       cv.put(姓名,维布络);
       cv.put(姓名,TCS);
       cv.put(姓名,Infosys公司);
       cv.put(姓名,认识到);       cv.put(邮件,joe@info.com);
       cv.put(邮件,bru@wipro.com);
       cv.put(邮件,jen@tcs.com);
       cv.put(邮件,ram@infosys.com);
       cv.put(邮件,cts@cts.com);       cv.put(接触,180 151 2010);
       cv.put(接触,180 151 2011);
       cv.put(接触,180 151 2012);
       cv.put(接触,180 151 2013​​);
       cv.put(接触,180 151 2014年);       cv.put(日期,2011年7月27日);
       cv.put(日期,2011年7月27日);
       cv.put(日期,2011年7月27日);
       cv.put(日期,2011年7月27日);
       cv.put(日期,2011年7月27日);       this.db.insert(TABLE_NAME,名,CV);


解决方案

这也就不难理解, ContentValues​​ 是某种哈希表,这意味着,这peice的的code

  cv.put(名,CS科技);
    cv.put(姓名,维布络);
    cv.put(姓名,TCS);
    cv.put(姓名,Infosys公司);
    cv.put(姓名,认识到);

最终覆盖价值与关键=名的4倍,并将其命名为终于得到最后一个值!

对于这个工作,你应该做的顺序是这样的:

  ContentValues​​ CV =新ContentValues​​();
       cv.put(名,CS科技);
       cv.put(邮件,joe@info.com);
       cv.put(接触,180 151 2010);
       cv.put(日期,2011年7月27日);       this.db.insert(TABLE_NAME,名,CV);       cv.put(姓名,维布络);
       cv.put(邮件,bru@wipro.com);
       cv.put(接触,180 151 2011);
       cv.put(日期,2011年7月27日);       this.db.insert(TABLE_NAME,名,CV);       cv.put(姓名,TCS);
       cv.put(邮件,jen@tcs.com);
       cv.put(接触,180 151 2012);
       cv.put(日期,2011年7月27日);       this.db.insert(TABLE_NAME,名,CV);       cv.put(姓名,Infosys公司);
       cv.put(邮件,ram@infosys.com);
       cv.put(接触,180 151 2013​​);
       cv.put(日期,2011年7月27日);       this.db.insert(TABLE_NAME,名,CV);       cv.put(姓名,认识到);
       cv.put(邮件,cts@cts.com);
       cv.put(接触,180 151 2014年);
       cv.put(日期,2011年7月27日);       this.db.insert(TABLE_NAME,名,CV);

I'm trying to insert values using ContentValues, I've inserted 5 values to 5 columns After I run the application, I've only the row with last set of values of ContentValues. The first four set is not inserted.

      ContentValues cv = new ContentValues();
       cv.put("name", "Cs Tech");
       cv.put("name", "Wipro");
       cv.put("name", "TCS");
       cv.put("name", "Infosys");
       cv.put("name", "Cognizant");

       cv.put("mail", "joe@info.com");
       cv.put("mail", "bru@wipro.com");
       cv.put("mail", "jen@tcs.com");
       cv.put("mail", "ram@infosys.com");
       cv.put("mail", "cts@cts.com");

       cv.put("contact", "180 151 2010");
       cv.put("contact", "180 151 2011");
       cv.put("contact", "180 151 2012");
       cv.put("contact", "180 151 2013");
       cv.put("contact", "180 151 2014");

       cv.put("date", "27 Jul 2011");   
       cv.put("date", "27 Jul 2011");
       cv.put("date", "27 Jul 2011");
       cv.put("date", "27 Jul 2011");
       cv.put("date", "27 Jul 2011");

       this.db.insert(TABLE_NAME, "name", cv);

解决方案

It is not hard to understand that ContentValues is some kind of a hashtable which implies that this peice of code

    cv.put("name", "Cs Tech");
    cv.put("name", "Wipro");
    cv.put("name", "TCS");
    cv.put("name", "Infosys");
    cv.put("name", "Cognizant"); 

is ultimately overwriting the Value with key="name" 4 times and name is finally getting the last value!

For this to work, you should do it sequentially like this:

ContentValues cv = new ContentValues();
       cv.put("name", "Cs Tech");
       cv.put("mail", "joe@info.com");         
       cv.put("contact", "180 151 2010");
       cv.put("date", "27 Jul 2011");

       this.db.insert(TABLE_NAME, "name", cv);

       cv.put("name", "Wipro");
       cv.put("mail", "bru@wipro.com");
       cv.put("contact", "180 151 2011");
       cv.put("date", "27 Jul 2011");

       this.db.insert(TABLE_NAME, "name", cv);

       cv.put("name", "TCS");
       cv.put("mail", "jen@tcs.com");  
       cv.put("contact", "180 151 2012");
       cv.put("date", "27 Jul 2011");

       this.db.insert(TABLE_NAME, "name", cv);

       cv.put("name", "Infosys");
       cv.put("mail", "ram@infosys.com");
       cv.put("contact", "180 151 2013");
       cv.put("date", "27 Jul 2011");

       this.db.insert(TABLE_NAME, "name", cv);

       cv.put("name", "Cognizant");
       cv.put("mail", "cts@cts.com");
       cv.put("contact", "180 151 2014");
       cv.put("date", "27 Jul 2011");

       this.db.insert(TABLE_NAME, "name", cv);

这篇关于Android的 - 内容价值超过写现有的行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆