2012-07-30 69 views
1

嗨,我已经开发插入值到MySQL数据库。我没有进入细节后单击按钮意味着空值也插入。所以请帮助我。在这里验证。 DIS是我的代码:空值也插入到mysql中的android

public class RegisterActivity extends Activity{ 
private final String NAMESPACE = "http://xcart.com"; 
private final String URL = "http://192.168.1.168:8085/XcartLogin/services/Insert?wsdl"; 
private final String SOAP_ACTION = "http://xcart.com/insertData"; 
private final String METHOD_NAME = "insertData"; 
Button btninsert; 
private Button btn_cancel; 
/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.register); 

    btninsert = (Button)findViewById(R.id.btn_insert); 

    btninsert.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
     insertValues(); 
     EditText userName = (EditText) findViewById(R.id.editText1); 
     if(userName.getText().toString().trim().equals("")) 
     {  
      userName.setError("username is required!"); 
      //You can Toast a message here that the Username is Empty 
     } 
     EditText userPassword = (EditText) findViewById(R.id.editText2); 
     if(userPassword.getText().toString().trim().equals("")) 
     {  
      userPassword.setError("password is required!"); 
      //You can Toast a message here that the Username is Empty 
     } 
     else 
     { 
      Intent i = new Intent(getApplicationContext(), AndroidLoginExampleActivity.class); 
      startActivity(i); 
     } 


      } 
     }); 




} 
public void insertValues(){ 
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME); 
EditText userName = (EditText) findViewById(R.id.editText1); 
String user_Name = userName.getText().toString(); 



EditText userPassword = (EditText) findViewById(R.id.editText2); 
String user_Password = userPassword.getText().toString(); 


//Pass value for userName variable of the web service 
    PropertyInfo unameProp =new PropertyInfo(); 
    unameProp.setName("userName");//Define the variable name in the web service method 
    unameProp.setValue(user_Name);//Define value for fname variable 
    unameProp.setType(String.class);//Define the type of the variable 
    request.addProperty(unameProp);//Pass properties to the variable 

    //Pass value for userPassword variable of the web service 
    PropertyInfo passwordProp =new PropertyInfo(); 
    passwordProp.setName("userPassword"); 
    passwordProp.setValue(user_Password); 
    passwordProp.setType(String.class); 
    request.addProperty(passwordProp); 

    SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); 
    envelope.setOutputSoapObject(request); 
    HttpTransportSE androidHttpTransport = new HttpTransportSE(URL); 

    try{ 
    androidHttpTransport.call(SOAP_ACTION, envelope); 
     SoapPrimitive response = (SoapPrimitive)envelope.getResponse(); 

     TextView result = (TextView) findViewById(R.id.textView2); 
     result.setText(response.toString()); 

} 
catch(Exception e){ 

} 

} 

}. 

Webservice的代码是:

package com.xcart; 
import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.PreparedStatement; 

public class Insert { 

public String insertData(String userName,String userPassword){ 

try{ 

    Class.forName("com.mysql.jdbc.Driver"); 
    Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/xcart-432pro","root",""); 
    PreparedStatement statement = con.prepareStatement("INSERT INTO xcart_customers(login,password) VALUES ('"+userName+"','"+userPassword+"');"); 
    int result = statement.executeUpdate(); 
    } 

    catch(Exception exc){ 
    System.out.println(exc.getMessage()); 
    } 

    return "Insertion successfull!!"; 
    } 

    } 

请帮助我。

回答

0

仅在创建时定义此EditText userName = (EditText) findViewById(R.id.editText1);一次,并在整个活动中使用它们。在你的代码中,你正在调用insertValues()方法,并且你在这个方法中没有检查空字符串的情况下插入值。这就是原因。

你的代码应该低于

public class RegisterActivity extends Activity{ 

EditText userName, userPassword ; // << changes here 
private final String NAMESPACE = "http://xcart.com"; 
private final String URL = "http://192.168.1.168:8085/XcartLogin/services/Insert?wsdl"; 
private final String SOAP_ACTION = "http://xcart.com/insertData"; 
private final String METHOD_NAME = "insertData"; 
Button btninsert; 
private Button btn_cancel; 
/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.register); 

    btninsert = (Button)findViewById(R.id.btn_insert); 
    user name = (EditText) findViewById(R.id.editText1);// << changes here 
userPassword = (EditText) findViewById(R.id.editText2);// << changes here 

    btninsert.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 


     if(userName.getText().toString().trim().equals("")) 
     {  
      userName.setError("username is required!"); 
      //You can Toast a message here that the Username is Empty 
     } 
     EditText 
     if(userPassword.getText().toString().trim().equals("")) 
     {  
      userPassword.setError("password is required!"); 
      //You can Toast a message here that the Username is Empty 
     } 
     else 
     { insertValues(); // << changes here 
      Intent i = new Intent(getApplicationContext(), AndroidLoginExampleActivity.class); 
      startActivity(i); 
     } 


      } 
     }); 
} 
+0

感谢这对我来说是非常有帮助的喜欢给出...感谢ü这么多 – hariprasad 2012-07-30 07:32:25