java - 创建方法后如何使用 SQLiteDatabase?
问题描述
我有一个 DBHelper 类:
public class DBHelper extends SQLiteOpenHelper{
public static final String DATABASE_NAME="DBHelper";
public static final String TABLE_NAME="tblCars";
public static final String COLUMN_MANUFACTURER="Manufacturer";
public static final String COLUMN_YEAR="Year";
public static final String COLUMN_HANDNUMBER="Handnumber";
public static final String COLUMN_CARNUMBER="Carnumber";
public static final String COLUMN_PRICE="Price";
SQLiteDatabase db;
public DBHelper(Context context){
super(context, DATABASE_NAME, null, 1);
}
@Override
public void onCreate(SQLiteDatabase db){
db.execSQL("create table tblCars" + "(id integer primary key, manufacturer text, year text, handnumber text, carnumber text, price integer)");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion){
db.execSQL("DROP TABLE IF EXISTS tblCars");
onCreate(db);
}
public void insertCar(Car c)
{
db = this.getWritableDatabase();
ContentValues cv=new ContentValues();
String query = "select * from tblCars";
Cursor cursor=db.rawQuery(query,null);
cv.put(COLUMN_MANUFACTURER,c.getManufacturer());
cv.put(COLUMN_YEAR,c.getYear());
cv.put(COLUMN_HANDNUMBER,c.getHandnumber());
cv.put(COLUMN_CARNUMBER, c.getCarnumber());
cv.put(COLUMN_PRICE,c.getPrice());
db.insert(TABLE_NAME, null, cv);
db.close();
}
}
我希望能够允许用户添加汽车,所以我继续进行了一项活动
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:id="@+id/btnAddCar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="25dp"
android:text="Add Car"
android:textAllCaps="false" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_marginStart="55dp"
android:layout_marginTop="55dp"
android:text="Name" />
<EditText
android:id="@+id/etName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/textView2"
android:layout_alignParentEnd="true"
android:layout_marginEnd="38dp"
android:ems="10"
android:hint="Name"
android:inputType="textPersonName"
android:textSize="14sp" />
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_alignStart="@+id/textView2"
android:layout_marginTop="107dp"
android:text="Number" />
<EditText
android:id="@+id/etOwnerNumber"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/textView3"
android:layout_alignStart="@+id/etName"
android:ems="10"
android:hint="000-000-0000"
android:inputType="phone"
android:textSize="14sp" />
<TextView
android:id="@+id/textView4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_alignStart="@+id/textView2"
android:layout_marginTop="155dp"
android:text="Manufacturer" />
<EditText
android:id="@+id/etManu"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/textView4"
android:layout_alignStart="@+id/etName"
android:ems="10"
android:hint="Manufacturer"
android:inputType="textPersonName"
android:textSize="14sp" />
<TextView
android:id="@+id/textView5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_alignStart="@+id/textView2"
android:layout_marginTop="202dp"
android:text="Year" />
<EditText
android:id="@+id/etYear"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/textView5"
android:layout_alignStart="@+id/etName"
android:ems="10"
android:hint="Year"
android:inputType="number"
android:textSize="14sp" />
<TextView
android:id="@+id/textView6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignStart="@+id/textView2"
android:layout_centerVertical="true"
android:text="Hand no." />
<EditText
android:id="@+id/etHandNum"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignStart="@+id/etName"
android:layout_alignTop="@+id/textView6"
android:ems="10"
android:hint="1,2, etc..."
android:inputType="number"
android:textSize="14sp" />
<TextView
android:id="@+id/textView7"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/etCarNum"
android:layout_alignStart="@+id/textView2"
android:text="Car no." />
<EditText
android:id="@+id/etCarNum"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignStart="@+id/etName"
android:layout_marginBottom="171dp"
android:ems="10"
android:hint="Car Number"
android:inputType="number"
android:textSize="14sp" />
<TextView
android:id="@+id/textView8"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignStart="@+id/textView2"
android:layout_marginBottom="125dp"
android:text="Price" />
<EditText
android:id="@+id/etPrice"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/textView8"
android:layout_alignStart="@+id/etName"
android:ems="10"
android:hint="Price"
android:inputType="textPersonName"
android:textSize="14sp" />
</RelativeLayout>
我想从中获取有关汽车的信息,并将其放入对象(汽车)中,然后我想将其存储在数据库中,但由于某种原因我不能使用我的“insertCar”方法,它保持给我错误“无法解析符号 insertCar”。每当我尝试在任何类中使用该方法时都会发生(在这种情况下是一个新类“Add”)
Car car=new Car(stManu,stYear,stHandNum,stCarNum);
insertCar(car);
解决方案
public class MainActivity extends AppCompatActivity {
DBHelper dbHelper;
EditText etName,etYear,etMobileNo,etManufacturer,etHandNo,etPrice,etCarNo;
Car car;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
etCarNo=findViewById(R.id.etCarNum);
etName=findViewById(R.id.etName);
etYear=findViewById(R.id.etYear);
etMobileNo=findViewById(R.id.etOwnerNumber;
etManufacturer=findViewById(R.id.etManu);
etHandNo=findViewById(R.id.etHandNum);
etPrice=findViewById(R.id.etPrice);
car=new Car();
dbHelper=new DBHelper(this);
car.setCarNo(etCarNo.getText().toString());
car.setName(etName.getText().toString());
car.setYear(etYear.getText().toString());
car.setMobileNo(etMobileNo.getText().toString());
car.setManufacturer(etManufacturer.getText().toString());
car.setHandNo(etHandNo.getText().toString());
car.setPrice(etPrice.getText().toString());
dbHelper.insertCar(car);
}
}
请试一试....
推荐阅读
- sql-server - RDS SQL Server - 尝试使用数据库电子邮件时出错
- sql - 自表编辑以来,SQL Server 全文索引未完全更新
- javascript - 如何在 Chart JS 数据集中使用数据数组?
- c# - 如何从 Json 文件中按名称播种枚举
- node.js - 在 Express 应用程序中使用 SSL
- python - 尝试加载数据并返回 GeoDataFrame,出现错误
- postgresql - 如何在 psqlodbc 驱动程序密码中使用特殊字符
- ios - 绑定首选项_尝试每帧更新多次
- r - 按组选择每个连续运行的第一行
- python - 如何使用python增加excel中的列