**我创建了一个Web服务来检索特定公司代码的所有者列表。
当我运行这个web服务...它工作正常。
请帮助我使用Web应用程序执行此操作,因为当我执行相同操作时显示的结果是“SYSTEM.TOSTRING []”
Web应用程序包含一个用于输入公司代码的文本框和一个用于在下拉列表中获取所有者名称的按钮
public class OwnerWebService : System.Web.Services.WebService
{
string ConnectionString = "Data Source=localdb" + ";" + "Initial Catalog=Prod" + ";" +
"Persist Security Info=True" + ";" +
"User ID=User1" + ";" +
"Password=User1" + ";" +
"enlist=false";
[WebMethod]
public string[] dtFetch(string strCompanyCode)
{
List<string> messages = new List<string>();
SqlConnection cnMySQL = new SqlConnection(ConnectionString );
cnMySQL.Open();
string sqlquery = string.Format("SELECT OwnerName FROM tbl_Owner WHERE CompanyCode='{0}'", strCompanyCode);
SqlCommand com = new SqlCommand(sqlquery, cnMySQL);
SqlDataReader sqlReader = com.ExecuteReader();
while (sqlReader.Read())
{
messages.Add(sqlReader.GetString(0));
}
cnMySQL.Close();
return messages.ToArray();
}
}
答案 0 :(得分:0)
不返回字符串[] 而是尝试返回逗号分隔的字符串。
用于返回逗号分隔的字符串,修改
中的最后一行return messages.ToArray();
到
return String.Join(',',messages.ToArray());
还会将返回类型更改为string
希望它有所帮助...
答案 1 :(得分:0)
您不能将字符串集合(string [])放入一个文本框中,该文本框只能显示一个字符串。
您的网络服务很好:它会返回所有者名称的集合。因此必须修改用户界面。
有几种解决方案:
最后一个(偏离主题)建议:为您的SqlConnection和SqlDataReader使用关键字“using”。这可以确保即使发生异常也会关闭它们。