我是Silverlight和WCF中的新成員。我已經創建了一個簡單的Silverlight應用程序,我在這裏等待了一秒鐘之後,從列表對象集合中的數據顯示警報消息框。如何從WCF服務調用Silverlight方法
我已經使用WCF連接到數據庫。但是我首先將所有數據庫數據添加到集合列表中,然後將該列表對象發送到silverlight,該silverlight正在迭代。
WCF服務代碼連接到數據庫中插入表收集數據:
public List<int> GetData()
{
List<int> list = new List<int>();
using (SqlConnection connection = new SqlConnection())
{
connection.ConnectionString =
System.Configuration.ConfigurationManager.ConnectionStrings["sqlConnection"].ToString();
using (SqlCommand command = connection.CreateCommand())
{
command.CommandType = CommandType.Text;
command.CommandText = "Select * from insertItem";
connection.Open();
using (SqlDataReader reader = command.ExecuteReader())
{
while (reader.Read())
{
list.Add(reader.GetInt32(1));
}
}
}
}
return list;
}
的Silverlight代碼從WCF服務訪問列表類和一秒的等待後,在消息框中顯示它:
Service1Client client = new Service1Client();
client.GetDataCompleted += new EventHandler<GetDataCompletedEventArgs>(DisplayResults);
client.GetDataAsync(1);
private void DisplayResults(object sender, GetDataCompletedEventArgs e)
{
timer.Stop();
ObservableCollection<int> list = e.Result;
foreach (int i in list)
{
HtmlPage.Window.Alert(i.ToString());
Thread.Sleep(1000);
}
}
任何人都可以請告訴我如何直接從WCF服務向Silverlight顯示數據而無需等待首先將所有數據放入List類集合中,然後顯示它?有什麼更好的辦法?
我不認爲我理解你的問題。您想做什麼?我的意思是當你通過你的wcf服務訪問數據庫時,你必須「把你的數據」放在某個地方,以便它可以被序列化併發送給你的調用者(這恰好是silverlight)。如果它太慢,你可能想要刪除Thread.Sleep()然後... – UrbanEsc
我實際上想直接在WCF類中訪問任何silverlight方法,以便每當我從數據庫中順序獲取任何數據時,我可以直接顯示它在等待一秒鐘之後將Silverlight放入List收藏夾對象中。可能嗎? – Stardust
看到我編輯的答案 – UrbanEsc