如何调用WebMethod接受集合数据类型作为输入
本文关键字:集合 数据类型 输入 WebMethod 何调用 调用 | 更新日期: 2023-09-27 17:50:41
我有一个。net Web方法如下
[WebMethod]
public void UpdateDataBase(List<string> values)
{
SqlConnection conn = new SqlConnection("user id=******; password=*******; server=.''SQLEXPRESS;database=************;");
SqlCommand comm = new SqlCommand();
comm.CommandText = "Insert into TestWeb(Test1,Test2,Test3) values(values[0],values[1],values[2])";
comm.Connection = conn;
comm.ExecuteNonQuery();
}
从一个excel外接程序中,我创建了一个对具有此方法的Web Service类的引用,并使用下面的代码来调用它。
private void Test()
{
ServiceReference1.SNLSoapClient svr = new ServiceReference1.SNLSoapClient();
List<string> values = new List<string>();
values.Add("Test1");
values.Add("Test2");
values.Add("Test3");
svr.UpdateDataBase(values);
}
但是我在最后一行得到一个错误,说Web方法只接受字符串数组作为输入,而不是列表,这是不正确的,你可以在Web方法定义中看到?应该做些什么来允许将集合类型传递给Web方法?
看起来您在UpdateDataBase
方法中没有将列表值添加到SqlCommand
。
你可能需要像;
[WebMethod]
public void UpdateDataBase(List<string> values)
{
SqlConnection conn = new SqlConnection("user id=******; password=*******; server=.''SQLEXPRESS;database=************;");
SqlCommand comm = new SqlCommand();
comm.CommandText = "Insert into TestWeb(Test1,Test2,Test3) values(@p0,@p1,@p2)";
comm.Parameters.AddWithValue("@p0", values[0]);
comm.Parameters.AddWithValue("@p1", values[1]);
comm.Parameters.AddWithValue("@p2", values[2]);
comm.Connection = conn;
comm.ExecuteNonQuery();
}