我有一个Web服务和一个返回字符串列表的方法。当我在Windows Phone应用程序中调用它并将其放入ListBox时,结果为 System.Data.SqlClient.SqlDataReader 。我是网络服务的新手,我不知道问题是来自网络服务还是来自windors手机。 这是我的代码:
来自网络服务的方法:
public string [] GetActions(string cnp)
{
string[] lista = new string[300];
try
{
con.Open();
SqlCommand cmd = new SqlCommand("select Denumire from Actiuni where cnp='"+cnp+"'", con);
SqlDataReader re = cmd.ExecuteReader();
int k = 0;
while (re.Read())
{
lista[k++] = re.ToString();
}
re.Close();
}
catch (SqlException exception)
{
}
finally
{
con.Close();
}
return lista;
}
这是我的Windows Phone代码:
public void DesplayActions()
{
ServiceReference1.Service1SoapClient client = new ServiceReference1.Service1SoapClient();
client.GetActionsCompleted += client_ValidareActiuniCompleted;
client.GetActionsAsync(cnp);
}
void client_GetActionsCompleted(object sender, ServiceReference1.GetActionsCompletedEventArgs e)
{
for(int i=0;i<e.Result.Count;i++)
Listbox1.Items.Add(e.Result[i]);
}
private void PhoneApplicationPage_Loaded(object sender, RoutedEventArgs e)
{
DesplayActions();
}
答案 0 :(得分:0)
lista[k++] = re.ToString();
是你做错了。您已在datareader上调用了ToString。
你想这样做:
lista[k++] = rdr.GetString(0);
0表示结果集中的第一列,作为字符串。谷歌SqlDataReader类获取更多信息,或者按名称而不是索引选择列。
答案 1 :(得分:0)
THX。现在在Web服务中工作。但不适用于WF应用程序。我的问题与ListBox相同,但我不知道它的语法。它在WFA中点头,我声明了一个ListViewItem,之后我添加了子项。