0

この質問は完全に冗長である可能性があり、申し訳ありません。しかし、フラッシュビルダーを使用してWebサービスにデータを送信するAndroidアプリにこのコードがあります

     var ResponseValue:int = 1;
    var QuestionID:int = data.QuestionID;
  ResultsQuestion = new ArrayCollection();
                            ResultsQuestion.addItem({"ResultSEQ":10000});
                            ResultsQuestion.addItem({"QuestionID":QuestionID});
                            ResultsQuestion.addItem({"ResponsePromptID":chk1.name});
                            ResultsQuestion.addItem({"ResponseValue":ResponseValue});
                                                    var service:HTTPService = new HTTPService();
service.url = "http://IPaddress:443/InsertData/Service1.asmx/HelloWorld";

//service.url = "http://localhost/InsertData/InsertData/Service1.asmx/HelloWorld";
service.method="POST";
var parameters:Object = new Object();
parameters["ResponsePromptID"]= ResultsQuestion.getItemAt(2).ResponsePromptID;
parameters["QuestionID"]= ResultsQuestion.getItemAt(1).QuestionID;
parameters["ResponseValue"]= ResultsQuestion.getItemAt(3).ResponseValue;

service.send(parameters);

そして、返されたこのデータを SQLServer に挿入したいと思います。そのために、この Web サービスを作成しました。

 [WebMethod]
        public string HelloWorld()
        {
            string Message;
            string MyConString = "Data Source=.\\SQLEXPRESS;Server=nameof server;Database=dbname;User ID=id;Password=password;Trusted_Connection=False; ";

  System.Data.SqlClient.SqlConnection DbConnection = new System.Data.SqlClient.SqlConnection(MyConString);
            DbConnection.Open();
            SqlCommand DbCommand = DbConnection.CreateCommand();
         string QuestionID= System.Web.HttpContext.Current.Request.Params["QuestionID"];

         // string QuestionID = "89";
            string ResultSEQ = "1999";
           string ResponsePromptID =System.Web.HttpContext.Current.Request.Params["ResponsePromptID"];
    //  string ResponsePromptID ="343";
            string ResponseValue = "12";
            DbCommand.CommandText = "Insert into [dbo].[tablename] (ResultSEQ,QuestionID,ResponsePromptID,ResponseValue) Values( @ResultSEQ,@QuestionID,@ResponsePromptID,@ResponseValue)";
            DbCommand.Parameters.AddWithValue("@ResultSEQ", ResultSEQ);
            DbCommand.Parameters.AddWithValue("@QuestionID", QuestionID);
            DbCommand.Parameters.AddWithValue("@ResponsePromptID", ResponsePromptID);
            DbCommand.Parameters.AddWithValue("@ResponseValue", ResponseValue);

            int result = DbCommand.ExecuteNonQuery();
            if (result == 1)
            {
                Message = "1";

            }
            else
            {
                Message = "2"; ;
            }
            DbConnection.Close();

            return Message;
        }
    }

しかし、挿入されたデータは表示されず、エラーも表示されません。だから、何が悪いのかわからない。おそらくこれ全体が間違っています。しかし、このコードの問題点を教えてください。また、フレックス HTTPService によって送信されたデータを確認する方法はありますか? どうもありがとう!

4

1 に答える 1

0

私は .net Web サービスを扱っていたので、HTTP サービスの代わりに Flex で Webserivce を使用しました。そして、それは魅力のように機能しました。

<fx:Declarations>
    <s:WebService id="ws" wsdl="http://uraddress:443/TestWebserives/Service1.asmx?WSDL">
        <s:operation
            name="HelloWorld"/>
    </s:WebService>
                    </fx:Declarations>

そして、データをWebサービスに送信したい場合に私がしなければならなかったのは、このようなものを持つことだけでした

ws.HelloWorld(ResultsQuestion.getItemAt(0).ResultSEQ,ResultsQuestion.g etItemAt(1).QuestionID,ResultsQuestion.getItemAt(2).ResponsePromptID,R esultsQuestion.getItemAt(3).ResponseValue);

ResultsQuestion は配列コレクションです。

しかし、HTTPSerive を介して Webservice を使用することの欠点/利点は何ですか? ありがとうございました

于 2012-11-14T17:59:12.593 に答える