- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在数据库中插入一些数据。我有一个带有一些 EditText 和一个按钮的界面。我在 editText 中写入一些字符串,当我单击按钮时,我想将此数据插入数据库中。当我尝试插入数据时出现错误。我向您展示我的代码。
接口(interface)的XML文件:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@color/black" >
<EditText
android:id="@+id/editTextNome"
style="@style/EditText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="19dp"
android:ems="10"
android:inputType="textPersonName" />
<TextView
android:id="@+id/textViewNome"
style="@style/TextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/editTextNome"
android:layout_alignBottom="@+id/editTextNome"
android:layout_alignParentLeft="true"
android:layout_marginLeft="43dp"
android:text="@string/textViewNome" />
<TextView
android:id="@+id/textViewEta"
style="@style/TextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/textViewSesso"
android:layout_alignTop="@+id/editTextEta"
android:text="@string/textViewEta" />
<TextView
android:id="@+id/textViewCF"
style="@style/TextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/textViewEta"
android:layout_alignTop="@+id/editTextCF"
android:text="@string/textViewCF" />
<TextView
android:id="@+id/textViewCitta"
style="@style/TextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/textViewCF"
android:layout_alignTop="@+id/editTextCitta"
android:text="@string/textViewCitta" />
<TextView
android:id="@+id/textViewIndirizzo"
style="@style/TextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/textViewCitta"
android:layout_alignTop="@+id/editTextIndirizzo"
android:text="@string/textViewIndirizzo" />
<TextView
android:id="@+id/textViewTelefono"
style="@style/TextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignRight="@+id/textViewIndirizzo"
android:layout_alignTop="@+id/editTextTelefono"
android:text="@string/textViewTelefono" />
<Button
android:id="@+id/buttonAggiorna"
style="@style/Button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/editTextTelefono"
android:layout_below="@+id/editTextTelefono"
android:layout_marginTop="57dp"
android:text="@string/buttonAggiorna" />
<EditText
android:id="@+id/editTextEta"
style="@style/EditText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/editTextNome"
android:layout_below="@+id/radioGroup1"
android:layout_marginTop="24dp"
android:ems="10" />
<RadioGroup
android:id="@+id/radioGroup1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/editTextEta"
android:layout_alignRight="@+id/editTextCognome"
android:layout_below="@+id/editTextCognome"
android:layout_marginTop="18dp"
android:orientation="horizontal" >
<RadioButton
android:id="@+id/radioButtonM"
style="@style/Radio"
android:layout_width="89dp"
android:layout_height="wrap_content"
android:text="@string/RadioButtonM" />
<RadioButton
android:id="@+id/radioButtonF"
style="@style/Radio"
android:layout_width="121dp"
android:layout_height="wrap_content"
android:text="@string/RadioButtonF" />
</RadioGroup>
<TextView
android:id="@+id/textViewSesso"
style="@style/TextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignRight="@+id/textViewNome"
android:layout_alignTop="@+id/radioGroup1"
android:text="@string/textViewSesso" />
<TextView
android:id="@+id/textViewCognome"
style="@style/TextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignRight="@+id/textViewIndirizzo"
android:layout_below="@+id/editTextNome"
android:layout_marginTop="26dp"
android:text="@string/textViewCognome" />
<EditText
android:id="@+id/editTextCognome"
style="@style/EditText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/editTextNome"
android:layout_alignTop="@+id/textViewCognome"
android:layout_weight="1"
android:ems="10"
android:inputType="textPersonName" />
<EditText
android:id="@+id/editTextCF"
style="@style/EditText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/editTextEta"
android:layout_below="@+id/editTextEta"
android:layout_marginTop="22dp"
android:ems="10" />
<EditText
android:id="@+id/editTextCitta"
style="@style/EditText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/editTextCF"
android:layout_below="@+id/editTextCF"
android:layout_marginTop="21dp"
android:ems="10" />
<EditText
android:id="@+id/editTextIndirizzo"
style="@style/EditText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/editTextCitta"
android:layout_below="@+id/editTextCitta"
android:layout_marginTop="17dp"
android:ems="10" >
<requestFocus />
</EditText>
<EditText
android:id="@+id/editTextTelefono"
style="@style/EditText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/editTextIndirizzo"
android:layout_below="@+id/editTextIndirizzo"
android:layout_marginTop="16dp"
android:ems="10"
android:inputType="phone" />
</RelativeLayout>
界面的java文件(仅观察onClick事件):
package com.example.prenotazione_esame;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.ContentValues;
import android.content.DialogInterface;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.*;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Button;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Toast;
public class Profilo extends Activity {
private LoginDataBase dbLogin;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
int id = getIntent().getExtras().getInt("id");
setContentView(R.layout.profilo);
LoginDataBase dbLogin = new LoginDataBase(this);
SQLiteDatabase db = dbLogin.getWritableDatabase();
String query = " SELECT * FROM T_PROFILO WHERE _id_L=?";
String id2 = String.valueOf(id);
String[] selectionArgs = {id2};
Cursor cursor = db.rawQuery(query, selectionArgs);
if(cursor.moveToFirst()){
EditText Nome = (EditText) findViewById(R.id.editTextNome);
String nome2 = cursor.getString(1);
Nome.setText(nome2);
EditText Cognome = (EditText) findViewById(R.id.editTextCognome);
String cognome2 = cursor.getString(2);
Cognome.setText(cognome2);
RadioButton RadioM = (RadioButton) findViewById(R.id.radioButtonM);
RadioButton RadioF = (RadioButton) findViewById(R.id.radioButtonF);
String sesso = cursor.getString(3);
if(sesso.equalsIgnoreCase("M")){
RadioM.setChecked(true);
RadioF.setChecked(false);
}
else{
RadioM.setChecked(false);
RadioF.setChecked(true);
}
EditText Età = (EditText) findViewById(R.id.editTextEta);
String età2 = cursor.getString(4);
Età.setText(età2);
EditText CF = (EditText) findViewById(R.id.editTextCF);
String CF2 = cursor.getString(5);
CF.setText(CF2);
EditText Città = (EditText) findViewById(R.id.editTextCitta);
String città2 = cursor.getString(6);
Città.setText(città2);
EditText Indirizzo = (EditText) findViewById(R.id.editTextIndirizzo);
String indirizzo2 = cursor.getString(7);
Indirizzo.setText(indirizzo2);
EditText Telefono = (EditText) findViewById(R.id.editTextTelefono);
String telefono2 = cursor.getString(8);
Telefono.setText(telefono2);
}
cursor.close();
Button button_aggiorna = (Button) findViewById(R.id.buttonAggiorna);
button_aggiorna.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
insertprofilo();
}
});
}
private void insertprofilo(){
int id = getIntent().getExtras().getInt("id");
ContentValues values = new ContentValues();
EditText Nome = (EditText) findViewById(R.id.editTextNome);
values.put("NOME", Nome.getText().toString());
EditText Cognome = (EditText) findViewById(R.id.editTextCognome);
values.put("COGNOME", Cognome.getText().toString());
RadioGroup radiogroup = (RadioGroup) findViewById(R.id.radioGroup1);
int radio_id = radiogroup.getCheckedRadioButtonId();
RadioButton radio = (RadioButton) findViewById(radio_id);
String sesso = radio.getText().toString();
values.put("CITTA", sesso);
EditText Età = (EditText) findViewById(R.id.editTextEta);
values.put("ETA", Età.getText().toString());
EditText CF = (EditText) findViewById(R.id.editTextCF);
values.put("CF", CF.getText().toString());
EditText Città = (EditText) findViewById(R.id.editTextCitta);
values.put("CITTA", Città.getText().toString());
EditText Indirizzo = (EditText) findViewById(R.id.editTextIndirizzo);
values.put("INDIRIZZO", Indirizzo.getText().toString());
EditText Telefono = (EditText) findViewById(R.id.editTextTelefono);
values.put("TELEFONO", Telefono.getText().toString());
values.put("_id_L", id); //Foreign key
SQLiteDatabase db = dbLogin.getWritableDatabase();
long id2 = db.insert("T_LOGIN", null, values);
}
}
最后是我的数据库:
package com.example.prenotazione_esame;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class LoginDataBase extends SQLiteOpenHelper {
private static final String DB_NAME="Login_DB";
private static final int DB_VERSION=1;
public LoginDataBase(Context context){
super(context,DB_NAME,null,DB_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
String sql="";
sql+= "CREATE TABLE T_LOGIN (";
sql+= " _id_LOGIN INTEGER PRIMARY KEY AUTOINCREMENT,";
sql+= " USERNAME TEXT NOT NULL,";
sql+= " PASSWORD TEXT NOT NULL";
sql+=")";
db.execSQL(sql);
String sql2="";
sql2+= "CREATE TABLE T_PROFILO (";
sql2+= " _id_PROFILO INTEGER PRIMARY KEY AUTOINCREMENT,";
sql2+= " NOME TEXT NOT NULL,";
sql2+= " COGNOME TEXT NOT NULL,";
sql2+= " ETA TEXT NOT NULL,";
sql2+= " SESSO TEXT(1) NOT NULL,";
sql2+= " CODICE_FISCALE TEXT NOT NULL,";
sql2+= " CITTA TEXT NOT NULL,";
sql2+= " INDIRIZZO TEXT NOT NULL,";
sql2+= " TELEFONO TEXT NOT NULL,";
sql2+= " _id_L INTEGER NOT NULL,";
sql2+= " FOREIGN KEY(_id_L) REFERENCES T_LOGIN(_id_LOGIN)";
sql2+= ")";
db.execSQL(sql2);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// Aggiornamento delle tabelle
}
}
我的 logcat 显示这个问题:
05-13 09:48:21.899: E/AndroidRuntime(324): FATAL EXCEPTION: main
05-13 09:48:21.899: E/AndroidRuntime(324): java.lang.NullPointerException
05-13 09:48:21.899: E/AndroidRuntime(324): at com.example.prenotazione_esame.Profilo.insertprofilo(Profilo.java:122)
05-13 09:48:21.899: E/AndroidRuntime(324): at com.example.prenotazione_esame.Profilo.access$0(Profilo.java:89)
05-13 09:48:21.899: E/AndroidRuntime(324): at com.example.prenotazione_esame.Profilo$1.onClick(Profilo.java:84)
05-13 09:48:21.899: E/AndroidRuntime(324): at android.view.View.performClick(View.java:2408)
05-13 09:48:21.899: E/AndroidRuntime(324): at android.view.View$PerformClick.run(View.java:8816)
05-13 09:48:21.899: E/AndroidRuntime(324): at android.os.Handler.handleCallback(Handler.java:587)
05-13 09:48:21.899: E/AndroidRuntime(324): at android.os.Handler.dispatchMessage(Handler.java:92)
05-13 09:48:21.899: E/AndroidRuntime(324): at android.os.Looper.loop(Looper.java:123)
05-13 09:48:21.899: E/AndroidRuntime(324): at android.app.ActivityThread.main(ActivityThread.java:4627)
05-13 09:48:21.899: E/AndroidRuntime(324): at java.lang.reflect.Method.invokeNative(Native Method)
05-13 09:48:21.899: E/AndroidRuntime(324): at java.lang.reflect.Method.invoke(Method.java:521)
05-13 09:48:21.899: E/AndroidRuntime(324): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
05-13 09:48:21.899: E/AndroidRuntime(324): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
05-13 09:48:21.899: E/AndroidRuntime(324): at dalvik.system.NativeStart.main(Native Method)
05-13 09:48:25.059: I/Process(324): Sending signal. PID: 324 SIG: 9
最佳答案
首先,您已经声明了数据库
的变量
private LoginDataBase dbLogin;
所以不需要像这样再次声明
LoginDataBase dbLogin = new LoginDataBase(this);
所以你需要将其更改为
dbLogin = new LoginDataBase(this);
最后检查 key “id”
是否与您发送的位置匹配。
int id = getIntent().getExtras().getInt("id");
关于java - 在Android数据库中插入数据时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23628172/
我有 512 行要插入到数据库中。我想知道提交多个插入内容是否比提交一个大插入内容有任何优势。例如 1x 512 行插入 -- INSERT INTO mydb.mytable (id, phonen
已经提出了类似的问题,但由于它总是取决于,我单独询问我的具体情况。 我有一个网站页面,显示来自数据库的一些数据,要从该数据库生成数据,我必须执行一些相当复杂的多连接查询。 数据每天(每晚)更新一次。
我正在使用 MongoDb 和 MySQL 的 python 连接器 pymongo 和 pymysql 测试 MongoDb 和 MySQL,特别是插入功能。 pymongo版本是3.4,pymys
从 C# 应用程序插入大型数组(10M 元素)的最快方法是什么? 到目前为止,我使用的是批量插入。 C# 应用程序生成一个大文本文件,我使用 BULK INSERT 命令加载它。出于好奇,我编写了一个
我编写了一个枚举类型,当我为它运行我创建的 JUnit 测试时会出现以下语法错误: java.lang.Error: Unresolved compilation problems: Synt
我正在尝试创建一个程序,它将单词列表作为输入,并将它们排序为二叉树,以便能够找到它们,例如像字典。这是我到目前为止所做的,但是 newEl -> el = input; 出现段错误,我知道这是因为它试
你好 我有编译这个问题 \begin{equation} J = \sum_{j=1}^{C} \end{equation} 我不断收到错误 missing $ inserted 这很奇怪,因
我需要使用 LINQ to SQL 将记录插入到没有主键的表中。 table 设计得很差;我无法控制表结构。该表由几个 varchar 字段、一个文本字段和一个时间戳组成。它用作其他实体的审计跟踪。
我正在尝试使用 itextsharp 创建 Pdf。我添加了一张包含两列的表格,其中一列包含文本和其他图像。我想要恒定的图像大小 如果另一个单元格中的文本增加并且其他单元格中的图像大小不同,我的图像会
我想把 calory 作为 fruits 的第一个值,我做不到,有人能帮忙吗? $sql = 'INSERT INTO fruits VALUES('', ?, ?, ?)'
我有一个包含季度观察结果的 data.frame。我现在想插入每月值(首选三次,线性很好)。中间目标应该是使用 DATE 创建一个 data.frame作为所有每月观察的索引和缺失值。 谷歌搜索表明我
我想知道是否有办法在值列表中使用“插入”。我正在尝试这样做: insert into tblMyTable (Col1, Col2, Col3) values('value1', value
我想让人们能够在他们的网站中插入单个 Javascript 行,这实际上允许我插入包含我网站内容的固定大小的 IFRAME。它实际上是一个小部件,允许他们搜索我的网站或接收其他信息。这可能吗? 最佳答
我有一个包含时间的表,列名为 time,数据类型为 Date。 在 asp.net 中,我想要一个查询插入日期,另一个查询则在 2 个日期之间进行选择。 我已经尝试过这个: string data =
这是我的代码: create or replace trigger th after insert on stock for each row declare sqty number;
这是一个带有具体示例的通用问题。 我有一个包含三个字段(流派 ID (PK IDENTITY)、流派和子流派)的表。该表对(流派,子流派)组合具有唯一约束。 我想知道如何修改存储过程以在表中不存在时插
因此,我正在遍历二叉树,节点包含字符串,以及读取文件时该字符串是否出现多次。我只查找读取文件时出现次数最多的前 10 个单词,因此本质上我只是比较 int 值。 我的问题是我正在尝试找出一种有效的方法
我有一张机票和行李 map , 每张门票必须是唯一的,并且必须与 map 上的位置相对应 是否可以仅更改行李(m_bagage->秒)而不更改 key ? std::unordered_map m_c
我正在使用 jdbc 驱动程序做一个示例项目。我的问题是,如果我在 2 文本字段中输入空值。 null 不应该加载到数据库中吗?有没有办法避免在数据库中插入空字段?任何帮助将不胜感激。 //Execu
我想知道 SSIS 中是否有特定的插入或更新选项。 如果我想让程序检查它是更新还是插入,我是否必须做一些编码?或者是否可以启用一个选项,以便它会自行检查 PK 是否存在,然后更新,否则插入? 亲切的问
我是一名优秀的程序员,十分优秀!