2016-07-11 2 views
0

Я новичок в веб-сервисах WCF, и мне нужно создать метод, который получает один список с очень клиентами и после вставки всех клиентов в базу данных.WCF Получить список объектов и вставить в базу данных

Атер некоторые поиска я это реализовано

IService.cs

public interface IService1 
{ 
    [OperationContract] 
    int InsertClients(MyListofClients clients); 
} 

[DataContract] 
public class MyListofClients 
{ 
    [DataMember] 
    List<Client> Clients { get; set; } 
} 

[DataContract] 
public class Client 
{ 
    [DataMember] 
    public int clientId { get; set; } 
    [DataMember] 
    public string ClientName { get; set; } 
    [DataMember] 
    public List<Client> Clients { get; set; } 
} 
} 

Servic1.svc

public int InsertClients(MyListofClients clients) 
    { 
     int res, result; 
     using (NpgsqlConnection conn = new NpgsqlConnection(connStringFarm)) 
     { 
      conn.Open(); 
      List<MyListofClients> firstStringList = new  List<MyListofClients>(); 
      string cmdStr = String.Format("Insert Into table (x1,x2)" + 
              " VALUES(@x1,@x2)"); 

      foreach (var item in firstStringList) 
      { 
       NpgsqlCommand cmd = new NpgsqlCommand(cmdStr, conn); 
       result = cmd.ExecuteNonQuery(); 
      } 

      conn.Close(); 
      return 0; 
      } 

App Client

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
    Dim db_comm As New NpgsqlCommand 
    Dim Reader As NpgsqlDataReader 


    Dim query As String = "Select code1,name1 from clientes" 
    db_comm.CommandText = query 
    db_comm.Connection = conn 
    conn.open 
    Reader = db_comm.ExecuteReader 

    Dim list As New List(Of String) 

    While Reader.Read 
     list.Add(Reader.GetString("code1")) 
     list.Add(Reader.GetString("name1")) 
    End While 

    Dim API As APICS.Service1Client = New APICS.Service1Client() 
    API.InsertClientsAsync(list) 
End Sub 

ОШИБКА Значение типа 'List (Of String)' не может быть преобразован в 'MyListofClients'.

Кто-то может мне помочь?

Благодаря

+0

Это выглядит хорошо, в чем ваш вопрос? –

+0

Не может помочь вам, когда вы не сообщите нам, в чем проблема. Вы получили сообщение об ошибке? Ничего не происходит? Как вы размещаете услугу? Какие СУБД вы используете? – Tim

+0

Теперь от клиента приложения в vb.net мне тоже нужно передать список для моей службы WCF. В основном мне нужно также получить данные из другой базы данных и отправить данные на этот wcf в List. Как я могу это сделать? Тим я использую IIS слишком хост и postgresql –

ответ

0

Ваш метод обслуживания ожидает объект MyListOfClient но вы передаете список строки.

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
Dim db_comm As New NpgsqlCommand 
Dim Reader As NpgsqlDataReader 


Dim query As String = "Select code1,name1 from clientes" 
db_comm.CommandText = query 
db_comm.Connection = conn 
conn.open 
Reader = db_comm.ExecuteReader 

Dim list As New List(Of String) --> wrong; this should be MyListOfClient 

While Reader.Read 
    list.Add(Reader.GetString("code1")) 
    list.Add(Reader.GetString("name1")) 
End While 

Dim API As APICS.Service1Client = New APICS.Service1Client() 
API.InsertClientsAsyn(list) --> wrong; this should be MyListOfClient 
+0

, но MyListOfClient - его список. что я должен там положить? –

Смежные вопросы