Почему мой параметр null send?

Мой метод веб-сервиса;

 [WebMethod]
 public DataSet Musteriler(string @Sirket,string @User,string @filtre)
{

    using (SqlConnection con = new SqlConnection(connstr))
    {
        try
        {
            con.Open();
        }
        catch (Exception)
        {

        }
        SqlCommand km = con.CreateCommand();
        SqlDataAdapter da = new SqlDataAdapter(km);

        if (Sirket.Trim().Length == 0)
        {
            return null;
        }
        km.CommandText = "select SirketKodu,Versiyon from MV4.dbo.SIRKET with(nolock) where kod=@kod";
        km.Parameters.Clear();
        km.Parameters.AddWithValue("@kod", @Sirket);
        DataTable sdt = new DataTable();

        da.Fill(sdt);
        string sirketkodu = "master";
        if (sdt.Rows.Count>0)
        {
            sirketkodu = "DB_V" + sdt.Rows[0][1] + "_" + sdt.Rows[0][0];
        }
        km.Connection.ChangeDatabase(mikrosirketkodu);

        km.CommandText = "select cari_kod,cari_unvan1 from XXX with(nolock) where (kod like @kod or unvan1 like @kod or unvan2 like @kod or @kod='')";
        km.Parameters.Clear();
        km.Parameters.AddWithValue("@kod", @filtre.mysearch());
        DataSet ds = new DataSet();
        da.SelectCommand = km;
        da.Fill(ds);
        return ds;
    }
}

Мой код Android kSoap2;

 public static String serverID ;//xxx=http
String URL = "";
final String METHOD_NAME = "Musteriler";
static String NAMESPACE = "xxxx://abc.com/Service.asmx/";
final String SOAP_ACTION = "xxxx://abc.com/Musteriler";    

 PropertyInfo property = new PropertyInfo();
        sendingString send = new sendingString(temizSirket, temizkullId, musFil);
        property.setName("Musteriler");
        property.setType(send.getClass());
        property.setValue(send);
        request.addProperty(property);

        SoapSerializationEnvelope envelope = new     SoapSerializationEnvelope(SoapEnvelope.VER11);
        envelope.bodyOut = request;
        envelope.dotNet = true;
        envelope.encodingStyle = SoapSerializationEnvelope.ENC2003;
        envelope.xsd = SoapEnvelope.XSD;
        envelope.xsi = SoapEnvelope.XSI;
        envelope.implicitTypes = true;

        envelope.setOutputSoapObject(request);

        envelope.addMapping(NAMESPACE, send.getClass().getSimpleName(), sendingString.class);

        HttpTransportSE httpTransport = new HttpTransportSE("http://" + serverID); 

        httpTransport.debug = true;

        httpTransport.call(SOAP_ACTION, envelope);

        response = (SoapObject) envelope.getResponse();

        List<String> list = new ArrayList<String>();

        for (int i = 1; i < response.getPropertyCount(); i++) {
            if (response.getProperty(i).toString().trim() != null) {
                SoapObject newDataSet = (SoapObject) response.getProperty(i);
                SoapObject tablo  = (SoapObject) newDataSet.getProperty(0);
                SoapObject icerik = (SoapObject) tablo.getProperty(0);
                list.add("Kod:" + icerik.getProperty(0).toString() + "-CariUnvan:" + icerik.getProperty(1).toString());
            }else {
                list.add("");
            }               
        }
        musteriAdapter = new ArrayAdapter<String>(this , R.layout.list_spinner, list);
        musteri_sec.this.runOnUiThread(yeni);
    } catch (Exception e) { 
        String a = e.toString();
    }
}

Thread thread = new Thread(new Runnable() {

    @Override
    public void run() {
        Call();
    }
});

Thread yeni = new Thread(new Runnable() {

    @Override
    public void run() {
        musteriSpinner = (Spinner) findViewById(R.id.spinnerMusteri);
        musteriSpinner.setAdapter(musteriAdapter);

    }
});

public class sendingString implements KvmSerializable {


    private String xSirket,xUser,xfiltre;

    public sendingString(String Sirket, String User, String filtre){
        super();
        this.xSirket = Sirket;
        this.xUser = User;
        this.xfiltre = filtre;

    }

    public String getSirket(){
        return xSirket;
    }
    public void setSirket(){
        this.xSirket= xSirket;
    }
    public String getUser(){
        return xUser;
    }
    public void setUser(){
        this.xUser= xUser;
    }
    public String getfiltre(){
        return xfiltre;
    }
    public void setfiltre(){
        this.xfiltre= xfiltre;
    }




    @Override
    public Object getProperty(int propertyNumber) {
        Object property = null;
        switch (propertyNumber) {
        case 0:
            property = this.xSirket;
            break;
        case 1:
            property = this.xUser;
            break;

        case 2:
            property = this.xfiltre;
            break;
        default:
            break;
        }
        return property;
    }

    @Override
    public int getPropertyCount() {
        // TODO Auto-generated method stub
        return 3;
    }

    @Override
    public void getPropertyInfo(int propertyNumber, Hashtable arg1, PropertyInfo propertyInfo) {
        switch (propertyNumber) {
        case 0:
            propertyInfo.type = PropertyInfo.STRING_CLASS;
            propertyInfo.name = "@Sirket";
            propertyInfo.setNamespace(NAMESPACE);
            break;
        case 1:
            propertyInfo.type = PropertyInfo.STRING_CLASS;
            propertyInfo.name = "@User";
            propertyInfo.setNamespace(NAMESPACE);
            break;
        case 2:
            propertyInfo.type = PropertyInfo.STRING_CLASS;
            propertyInfo.name = "@filtre";
            propertyInfo.setNamespace(NAMESPACE);

            break;

        default:
            break;
        }

    }

    @Override
    public void setProperty(int propertyNumber, Object data) {
        switch (propertyNumber) {
        case 0:
            this.xSirket = String.valueOf(data);
            break;
        case 1:
            this.xUser = String.valueOf(data);
            break;
        case 2:
            this.xfiltre = String.valueOf(data);
            break;

        default:
            break;
        }

    }

}

}

У меня есть подходящее соединение без параметров. Но когда я пытаюсь поместить параметры в соединение, оно всегда приходит в ноль. Я не мог найти решение моей проблемы в течение нескольких дней. Спасибо за вашу поддержку.

Редактировать:

  SoapObject response = null;
    try {

        SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);

        String temizkullId = kullKod.split("-")[0].substring(4);

        EditText sifre = (EditText) findViewById(R.id.editTextSifre);
        String sifreText = sifre.getText().toString();
        PropertyInfo property1 = new PropertyInfo();
        property1.name = "kod";
        property1.setName("kod");
        property1.setNamespace(NAMESPACE);
        property1.setType(PropertyInfo.STRING_CLASS);
        property1.setValue(temizkullId);
        request.addProperty(property1);

        PropertyInfo property2 = new PropertyInfo();
        property2.name = "sifre";
        property2.setName("sifre");
        property2.setNamespace(NAMESPACE);
        property2.setType(PropertyInfo.STRING_CLASS);
        property2.setValue(sifreText);
        request.addProperty(property2);



        SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
        envelope.dotNet = true;
        envelope.bodyOut = request;
        envelope.setOutputSoapObject(request);



        HttpTransportSE httpTransport = new HttpTransportSE("http://" + serverID); 
        httpTransport.debug = true;
        httpTransport.call(SOAP_ACTION, envelope);
    response = (SoapObject) envelope.getResponse();
        boolean ok = (Boolean) response.getProperty(0);


response =  (SoapObject) envelope.getResponse();

линия в; "SoapFault - код ошибки: 'soap:Server' faultstring: 'Серверу не удалось обработать запрос. ---> Ссылка на строку не установлена ​​для экземпляра строки. Имя параметра: s' faultactor: 'null' detail: org.kxml2.kdom.Node@b4dfd350"Я получаю ошибку.

Метод веб-сервиса:

[WebMethod]
public bool SifreKontrol(string kod, string sifre)
{
    using (SqlConnection con = new SqlConnection(connstr))
    {
        try
        {
            con.Open();
        }
        catch (Exception)
        {

        }

        SqlCommand km = con.CreateCommand();
        km.CommandText ="select count(*) from MV4.dbo.USERS with (NOLOCK) where kod=@kod and isnull(pasif, 0)=0 and (pass=@pass)";
        km.Parameters.Clear();
        km.Parameters.AddWithValue("@kod", kod);
        km.Parameters.AddWithValue("@pass", sifreleme.Encrypt(sifre, true));

        if (km.ExecuteScalar().Tamsayi() > 0)
            return true;
        else return false; 
    }
}

Пожалуйста, помогите мне...

2 ответа

Рекомендую всем. Dot Net версии 4.0 и выше с веб-сервисом для подготовки. Очень будет комфортно

Я решил проблему:

[WebMethod]
     public bool SifreKontrol(Object kod, Object sifre)
      {
      using (SqlConnection con = new SqlConnection(connstr))
      {...}}

А также:

PropertyInfo property2 = new PropertyInfo();
    property2.name = "sifre";
    property2.setName("sifre");
    property2.setNamespace(NAMESPACE);
    property2.setType(PropertyInfo.OBJECT_TYPE);
    property2.setValue(sifreText);
    request.addProperty(property2);
Другие вопросы по тегам