我有一个.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方法只接受一个字符串数组作为输入,而不是一个不正确的List,正如你在Web方法定义中看到的那样?应该怎么做才能将集合类型传递给Web方法?
答案 0 :(得分:0)
您似乎没有在SqlCommand
方法中将列表值添加到UpdateDataBase
。
您可能需要类似的内容;
[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();
}