Android应用程序在创建数据库时停止

时间:2018-05-21 22:21:09

标签: android sqlite

我创建数据库时,我的应用程序崩溃了。这是我的代码

 @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_place_order);

    //Step 1:Create DB and table
    final SQLiteDatabase 
 db=openOrCreateDatabase("Test_db",MODE_PRIVATE,null);
    String c_query="create table if not exists clients(sname text,add 
 text,order text,price text, ddate text)";
    db.execSQL(c_query);
    Toast.makeText(getBaseContext(),"DB and Table 
  created",Toast.LENGTH_LONG).show();

    //Step 2: Object Declaration

    final EditText sname=(EditText)findViewById(R.id.editText);
    final EditText add=(EditText)findViewById(R.id.editText2);
    final EditText order=(EditText)findViewById(R.id.editText3);
    final EditText price=(EditText)findViewById(R.id.editText4);
    final EditText ddate=(EditText)findViewById(R.id.editText5);
    Button b=(Button)findViewById(R.id.button);

    //Step 4:Click event of button

    b.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            //Step 5: get the value of Objects

            String ssname=sname.getText().toString();
            String sadd=add.getText().toString();

            String sorder=order.getText().toString();
            String sprice=price.getText().toString();
            String sddate=ddate.getText().toString();

            //Step 6: Execute Insert query

            String i_query= "insert into clients values ('"+ssname+"','"+sadd+"','"+sorder+"','"+sprice+"','"+sddate+"')";
            db.execSQL(i_query);
            Toast.makeText(getBaseContext(),"Record 
  Inserted",Toast.LENGTH_LONG).show();


        }
    });



}

2 个答案:

答案 0 :(得分:1)

addordersqlite keywords,不能在没有引用的情况下用作列名。考虑重命名这些列。

答案 1 :(得分:0)

请使用下面提到的查询更新您的查询,它不会崩溃。

String c_query =“如果不存在客户端则创建表格(sname文本,'添加'  文本,'订单'文本,价格文本,日期文本)“;