我创建了需要从SQL Server获取数据的Windows应用程序。为了方便起见,我还有XML Web Service,这里是我用来返回DataSet的代码:
`
[WebMethod]
public DataSet GetDataSet(SqlCommand cmd)
{
using (SqlConnection Conn = new SqlConnection(ConnString))
{
cmd.Connection = Conn;
SqlDataAdapter da = new SqlDataAdapter(cmd);
try
{
//Conn.Open();
using (DataSet DS = new DataSet())
{
da.Fill(DS);
return DS;
}
}
catch (Exception ex)
{
return (new DataSet());
}
finally
{
if (da != null)
{
da.Dispose();
}
}
}
}
`
当我想将我的Web服务添加到我的Win Application Project时,它会出现以下错误:
Cannot serialize member System.ComponentModel.Component.Site of type System.ComponentModel.ISite because it is an interface
任何建议都将受到高度赞赏。
提前致谢。
答案 0 :(得分:1)
您可能需要阅读以下文章,因为我认为您不能序列化接口对象: -
答案 1 :(得分:1)
SqlCommand无法序列化,因此您需要在函数中实例化。
[WebMethod]
public DataSet GetDataSet()
{
SqlCommand cmd = new SqlCommand();
using (SqlConnection Conn = new SqlConnection(ConnString))
{
cmd.Connection = Conn;
SqlDataAdapter da = new SqlDataAdapter(cmd);
try
{
//Conn.Open();
using (DataSet DS = new DataSet())
{
da.Fill(DS);
return DS;
}
}
catch (Exception ex)
{
return (new DataSet());
}
finally
{
if (da != null)
{
da.Dispose();
}
}
}
}