0

データベースに接続しようとしていますが、vb を選択して挿入する必要があります。指図。インターネット上に、スタンドアロンまたは他の .net アプリで動作する Web サービスがあります。Android bu のコードをいくつか書きましたが、正しく実行できませんでした。

public class MainActivity extends Activity {
    final static String NAMESPACE = "http://tempuri.org/";
    final static String METHOD_NAME = "MQ_Insert";
    final static String SOAP_ACTION = "http://tempuri.org/MQ_Insert";
    final static String URL = "http://mysite/Service1.asmx";

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

        final EditText txt1 = (EditText) findViewById(R.id.editText1);
        final EditText txt2 = (EditText) findViewById(R.id.editText2);
        final EditText txt3 = (EditText) findViewById(R.id.editText3);
        final EditText txt4 = (EditText) findViewById(R.id.editText4);
        final TextView txt=(TextView) findViewById(R.id.textView1);

        Button btn=(Button) findViewById(R.id.button1);
        btn.setOnClickListener(new OnClickListener() {

            public void onClick(View v) {
                SoapObject Request = new SoapObject(NAMESPACE,METHOD_NAME);
                Request.addProperty("QA", txt1.getText().toString());
                Request.addProperty("H_ID", Integer.parseInt(txt2.getText().toString()));
                Request.addProperty("MC_ID", Integer.parseInt(txt3.getText().toString()));
                Request.addProperty("CC_ID", Integer.parseInt(txt4.getText().toString()));

                SoapSerializationEnvelope soapEnvelop;
                soapEnvelop = new SoapSerializationEnvelope(SoapEnvelope.VER11);
                soapEnvelop.dotNet=true;
                soapEnvelop.setOutputSoapObject(Request);

                HttpTransportSE htp=new HttpTransportSE(URL);
                try {
                    htp.call(SOAP_ACTION, soapEnvelop);
                    //SoapPrimitive resultString = (SoapPrimitive)soapEnvelop.getResponse();
                    //String id = resultString.toString();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (XmlPullParserException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                String result;
                try {
                    result= "final:"+(SoapPrimitive) soapEnvelop.getResponse();
                    txt.setText(result);
                } catch (SoapFault e) {
                    e.printStackTrace();
                }                   
            }
        });
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
}

AVDを試していたときはこのコードで止まっていましたが、Eclipseでは問題ないようです。以下のWebサービスコードで、正常に動作します。私は自分の間違いを見つけることができません:(

 [WebMethod]
        public string MQ_Insert(string QA, int H_ID, int MC_ID, int CC_ID)
        {
            conn = new SqlConnection(constring);
            conn.Open();

            comm = new SqlCommand();
            comm.Connection = conn;
            comm.CommandType = System.Data.CommandType.StoredProcedure;
            comm.CommandText = "MQ_Insert";
            comm.Parameters.AddWithValue("@QA", QA);
            comm.Parameters.AddWithValue("@H_ID", H_ID);
            comm.Parameters.AddWithValue("@MC_ID", MC_ID);
            comm.Parameters.AddWithValue("@CC_ID", CC_ID);
            try
            {
                comm.ExecuteNonQuery();
                return "Record Saved";
            }
            catch (Exception)
            {
                return "Not Saved";
            }
            finally
            {
                conn.Close();
            }
        }

これを試みると、エラーが発生します:

ここに画像の説明を入力

4

0 に答える 0