Android - 内容写入现有行的值

时间:2011-08-03 11:25:47

标签: java android database sqlite

我正在尝试使用ContentValues插入值,我已经将5个值插入到5列中运行应用程序后,我只有最后一组值为ContentValues的行。未插入前四个。

      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);

3 个答案:

答案 0 :(得分:8)

不难理解ContentValues是某种哈希表,意味着这段代码

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

最终用key =“name”4次覆盖Value,名字终于得到最后一个值了!

要使其正常工作,您应该按顺序执行此操作:

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);

答案 1 :(得分:2)

接近这一点的最佳方法是,插入列的所有值,然后继续下一个

例如:

   cv.put("name", "gautam");
   cv.put("id", "cse08119");
   cv.put("country", "tamilnadu");
   cv.put("city", "coimbatore");
   cv.put("pin", "636213");

然后现在插入值..

您可以使用while循环和数组......

例如:

   cv.put("name",namearray[i]);
   cv.put("id",id[i]);
   cv.put("country", countryname[i]);
   cv.put("city",countryarray[i]);
   cv.put("pin", pincode[i]);

循环时直到它到达数组的末尾!

答案 2 :(得分:0)

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);

像这样你必须在你的表中插入另外5行。你做的是 - 将值放在ContentValues中5次。所以它在插入表之前需要最后一个条目。你必须写5个这样的插入语句我想你现在明白了