Android 如何在相应列下插入数据值?
嗨,我是android应用程序开发新手? 我已经成功地让我的数据库获取并存储我的数据值。 但由于某种原因,当我查看数据库时,它们会紧接着插入,中间有一个空格。 如何使输入的值落在相应的列下 我的数据库是JavaAndroid 如何在相应列下插入数据值?,android,sql,sqlite,Android,Sql,Sqlite,嗨,我是android应用程序开发新手? 我已经成功地让我的数据库获取并存储我的数据值。 但由于某种原因,当我查看数据库时,它们会紧接着插入,中间有一个空格。 如何使输入的值落在相应的列下 我的数据库是Java import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.SQLException; impo
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;
public class LogsDB {
static final String Key_ROWID = "_id";
static final String Key_Date = "Date";
static final String Key_Milkers = "Milkers";
static final String Key_Feeders = "Feeder";
static final String Key_Mastitis = "Mastitis";
static final String Key_Beef = "Beef";
static final String DATABASE_NAME = "LogsDB";
static final String DATABASE_TABLE = "Logs";
static final int DATABASE_VERSION = 1;
private DatabaseHelper myhelper;
private final Context myContext;
private SQLiteDatabase myDatabase;
private static class DatabaseHelper extends SQLiteOpenHelper
{
DatabaseHelper(Context context)
{
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db)
{
db.execSQL("CREATE TABLE " + DATABASE_TABLE + " (" +
Key_ROWID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
Key_Date + " TEXT NOT NULL, " +
Key_Milkers + " TEXT NOT NULL, " +
Key_Feeders + " TEXT NOT NULL, " +
Key_Mastitis + " INTEGER NOT NULL, " +
Key_Beef + " INTEGER NOT NULL);"
);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
{
db.execSQL("DROP TABLE IF EXISTS " + DATABASE_TABLE);
onCreate(db);
}
}
public LogsDB(Context c){
myContext = c;
}
public LogsDB open() throws SQLException{
myhelper = new DatabaseHelper(myContext);
myDatabase = myhelper.getWritableDatabase();
return this;
}
public void close(){
myhelper.close();
}
public long creatEntry(String date, String milkers, String feeders,
String mastitis, String beef) {
// TODO Auto-generated method stub
ContentValues cv = new ContentValues();
cv.put(Key_Date, date);
cv.put(Key_Milkers, milkers);
cv.put(Key_Feeders, feeders);
cv.put(Key_Mastitis, mastitis);
cv.put(Key_Beef, beef);
return myDatabase.insert(DATABASE_TABLE, null, cv);
}
public String getData() {
// TODO Auto-generated method stub
String[] columns = new String[]{ Key_ROWID, Key_Date, Key_Milkers, Key_Feeders, Key_Mastitis, Key_Beef};
Cursor c = myDatabase.query(DATABASE_TABLE, columns, null, null, null, null, null);
String result = "";
int iRow = c.getColumnIndex(Key_ROWID);
int iDate = c.getColumnIndex(Key_Date);
int iMilkers = c.getColumnIndex(Key_Milkers);
int iFeeders = c.getColumnIndex(Key_Feeders);
int iMastitis = c.getColumnIndex(Key_Mastitis);
int iBeef = c.getColumnIndex(Key_Beef);
for (c.moveToFirst(); !c.isAfterLast(); c.moveToNext()){
result = result + c.getString(iRow) + " " + c.getString(iDate) + " " + c.getString(iMilkers) + " " +
c.getString(iFeeders) + " " + c.getString(iMastitis) + " " + c.getString(iBeef) + "\n";
}
return result;
}
public String getDate(long l) {
// TODO Auto-generated method stub
String[] columns = new String[]{ Key_ROWID, Key_Date, Key_Milkers, Key_Feeders, Key_Mastitis, Key_Beef};
Cursor c = myDatabase.query(DATABASE_TABLE, columns, Key_ROWID + "=" + l, null, null, null, null);
if (c !=null);{
c.moveToFirst();
String date = c.getString(1);
return date;
}
}
public String getmilkers(long l) {
// TODO Auto-generated method stub
String[] columns = new String[]{ Key_ROWID, Key_Date, Key_Milkers, Key_Feeders, Key_Mastitis, Key_Beef};
Cursor c = myDatabase.query(DATABASE_TABLE, columns, Key_ROWID + "=" + l, null, null, null, null);
if (c !=null);{
c.moveToFirst();
String milkers = c.getString(2);
return milkers;
}
}
public String getfeeders(long l) {
// TODO Auto-generated method stub
String[] columns = new String[]{ Key_ROWID, Key_Date, Key_Milkers, Key_Feeders, Key_Mastitis, Key_Beef};
Cursor c = myDatabase.query(DATABASE_TABLE, columns, Key_ROWID + "=" + l, null, null, null, null);
if (c !=null);{
c.moveToFirst();
String feeders = c.getString(3);
return feeders;
}
}
public String getmastitis(long l) {
// TODO Auto-generated method stub
String[] columns = new String[]{ Key_ROWID, Key_Date, Key_Milkers, Key_Feeders, Key_Mastitis, Key_Beef};
Cursor c = myDatabase.query(DATABASE_TABLE, columns, Key_ROWID + "=" + l, null, null, null, null);
if (c !=null);{
c.moveToFirst();
String mastitis = c.getString(4);
return mastitis;
}
}
public String getbeef(long l) {
// TODO Auto-generated method stub
String[] columns = new String[]{ Key_ROWID, Key_Date, Key_Milkers, Key_Feeders, Key_Mastitis, Key_Beef};
Cursor c = myDatabase.query(DATABASE_TABLE, columns, Key_ROWID + "=" + l, null, null, null, null);
if (c !=null);{
c.moveToFirst();
String beef = c.getString(5);
return beef;
}
}
public void updateEntry(long lRow, String edate, String emilkers,
String efeeders, String emastitis, String ebeef) {
// TODO Auto-generated method stub
ContentValues Cvedit = new ContentValues();
Cvedit.put(Key_Date, edate);
Cvedit.put(Key_Milkers, emilkers);
Cvedit.put(Key_Feeders, efeeders);
Cvedit.put(Key_Mastitis, emastitis);
Cvedit.put(Key_Beef, ebeef);
myDatabase.update(DATABASE_TABLE, Cvedit, Key_ROWID + "=" + lRow, null);
}
public void deleteEntry(long lRow1) {
// TODO Auto-generated method stub
myDatabase.delete(DATABASE_TABLE, Key_ROWID + "=" + lRow1, null);
}
}
我的ViewLogs是java
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class Viewlogs extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_viewlogs);
TextView tv = (TextView) findViewById(R.id.tvSqlinfo);
LogsDB info = new LogsDB(this);
info.open();
String data = info.getData();
info.close();
tv.setText(data);
}
}
我的数据库XML
<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
tools:context=".Daily_log" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/daily_log"
android:textSize="20sp" />
<EditText
android:id="@+id/date"
android:layout_width="258dp"
android:layout_height="wrap_content"
android:hint="@string/date"
android:inputType="date"/>
<EditText
android:id="@+id/milkers"
android:layout_width="258dp"
android:layout_height="wrap_content"
android:hint="@string/milkers" />
<EditText
android:id="@+id/feeders"
android:layout_width="252dp"
android:layout_height="wrap_content"
android:ems="10"
android:hint="@string/feeders" />
<EditText
android:id="@+id/mastitis"
android:layout_width="252dp"
android:layout_height="wrap_content"
android:ems="10"
android:hint="@string/mastitis"
android:inputType="text"/>
<EditText
android:id="@+id/beef"
android:layout_width="252dp"
android:layout_height="wrap_content"
android:ems="10"
android:hint="@string/beef"
android:inputType="text"/>
<Button
android:id="@+id/addlog"
android:layout_width="261dp"
android:layout_height="wrap_content"
android:onClick="addlog"
android:text="@string/add_daily" />
<Button
android:id="@+id/viewlogs"
android:layout_width="261dp"
android:layout_height="wrap_content"
android:onClick="viewlogs"
android:text="@string/view_logs"/>
<EditText
android:id="@+id/finddate"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="date"/>
<Button
android:id="@+id/info"
android:layout_width="261dp"
android:layout_height="wrap_content"
android:onClick="addlog"
android:text="@string/get_info" />
<Button
android:id="@+id/editlog"
android:layout_width="261dp"
android:layout_height="wrap_content"
android:onClick="addlog"
android:text="@string/edit_log" />
<Button
android:id="@+id/deletelogs"
android:layout_width="261dp"
android:layout_height="wrap_content"
android:onClick="viewlogs"
android:text="@string/delete_log"/>
</LinearLayout>
</ScrollView>
非常感谢你的帮助。
谢谢您的getData方法似乎返回了一个由空格分隔的字符串:
result = result + c.getString(iRow) + " " + c.getString(iDate) + " " + c.getString(iMilkers) + " " +
c.getString(iFeeders) + " " + c.getString(iMastitis) + " " + c.getString(iBeef) + "\n";
最好将其作为数组返回,并使用该数组显示结果,或者使用管道或逗号对其进行分隔:+“|”+”或+“,”并拆分以显示结果
我没有看到“setText”方法显示结果的方式…在数据库文件add中尝试下面的代码-
ArrayList<HashMap<String, String>> list;
if (c.moveToFirst()) {
do {
HashMap<String, String> map = new HashMap<String, String>();
map.put("iRoW", c.getString(0));
map.put("iDate", c.getString(1));
map.put("iFeeders", c.getString(2));
list.add(map);
} while (c.moveToNext());
}
c.close();
return list;
ArrayList列表;
if(c.moveToFirst()){
做{
HashMap=newHashMap();
map.put(“iRoW”,c.getString(0));
map.put(“iDate”,c.getString(1));
map.put(“iFeeders”,c.getString(2));
列表。添加(地图);
}而(c.moveToNext());
}
c、 close();
退货清单;
在文件中调用数据库函数按以下代码检索:
ArrayListretrieveList.get(position.get(“iRow”) 如果我把它改成数组?我需要将c.getString更改为什么?添加了我的集合文本java。感谢您的帮助,您可以改为使用:ArrayList result=new ArrayList();然后,在循环中,result.add(c.getString(c.getColumnIndex(“imastis”));等等。然后返回数组,或者根据需要使用数组中的每个项。我正确地理解了这一点,但现在我的视图数据库中的“setText”出现错误。我需要如何更改ViewLogs Java文件才能查看数据库。我似乎无法纠正电视上的错误;。我应该把ArrayList
result = result + c.getString(iRow) + " " + c.getString(iDate) + " " + c.getString(iMilkers) + " " +
c.getString(iFeeders) + " " + c.getString(iMastitis) + " " + c.getString(iBeef) + "\n";
ArrayList<HashMap<String, String>> list;
if (c.moveToFirst()) {
do {
HashMap<String, String> map = new HashMap<String, String>();
map.put("iRoW", c.getString(0));
map.put("iDate", c.getString(1));
map.put("iFeeders", c.getString(2));
list.add(map);
} while (c.moveToNext());
}
c.close();
return list;