使用Web服务写入数据集

发布于 2025-01-23 12:24:48 字数 1455 浏览 3 评论 0原文

我需要使用.NET WebService将一些简单的数据写入数据集中已经存在的表格。但是它给了我以下错误。

System.MissingMethodException: No parameterless constructor defined for this object.
   at System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& bNeedSecurityCheck)
   at System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark)
   at System.Activator.CreateInstance(Type type, Boolean nonPublic)
   at System.Activator.CreateInstance(Type type)
   at System.Web.Services.Protocols.ServerProtocol.CreateServerInstance()
   at System.Web.Services.Protocols.WebServiceHandler.Invoke()
   at System.Web.Services.Protocols.WebServiceHandler.CoreProcessRequest()

这是我尝试过的代码。

public class DataSave : System.Web.Services.WebService
    {
        DataSet DS = new DataSet();
        DataSet _dataset;

        public DataSave(DataSet dataSet)
        {
            _dataset = dataSet;
        }

        [WebMethod]
        public void SubmitStudents()
        {
            DataSet.StudentsRow row = _dataset.Students.NewStudentsRow();
            row.Name = "Sam";
            row.Age = 5;
            row.School =  "PreSchool";
            row.Date = DateTime.Today;
            this._dataset.Students.Rows.Add(row);
        }
    }
}

是什么导致此错误?

I need to write some simple data to an already existing table in a dataset using.net webservice.But it gives me following error.

System.MissingMethodException: No parameterless constructor defined for this object.
   at System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& bNeedSecurityCheck)
   at System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark)
   at System.Activator.CreateInstance(Type type, Boolean nonPublic)
   at System.Activator.CreateInstance(Type type)
   at System.Web.Services.Protocols.ServerProtocol.CreateServerInstance()
   at System.Web.Services.Protocols.WebServiceHandler.Invoke()
   at System.Web.Services.Protocols.WebServiceHandler.CoreProcessRequest()

Here is the code that I've tried.

public class DataSave : System.Web.Services.WebService
    {
        DataSet DS = new DataSet();
        DataSet _dataset;

        public DataSave(DataSet dataSet)
        {
            _dataset = dataSet;
        }

        [WebMethod]
        public void SubmitStudents()
        {
            DataSet.StudentsRow row = _dataset.Students.NewStudentsRow();
            row.Name = "Sam";
            row.Age = 5;
            row.School =  "PreSchool";
            row.Date = DateTime.Today;
            this._dataset.Students.Rows.Add(row);
        }
    }
}

What causing this error?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

流绪微梦 2025-01-30 12:24:48

尝试以下内容:

    public class DataSave 
    {

        DataSet _dataset= new DataSet();
        DataTable _dt = new DataTable();
        

        public DataSave(DataSet dataSet)
        {
            _dataset.Tables.Add(_dt);
            _dt.Columns.Add("Name",typeof(string));
            _dt.Columns.Add("Age",typeof(int));
            _dt.Columns.Add("School",typeof(string));
            _dt.Columns.Add("Data",typeof(DateTime));
        }

        public void SubmitStudents()
        {
            DataRow row = _dt.Rows.Add(new object[] {"Sam", 5, "PreSchool", DateTime.Today);
        }
    }

Try following :

    public class DataSave 
    {

        DataSet _dataset= new DataSet();
        DataTable _dt = new DataTable();
        

        public DataSave(DataSet dataSet)
        {
            _dataset.Tables.Add(_dt);
            _dt.Columns.Add("Name",typeof(string));
            _dt.Columns.Add("Age",typeof(int));
            _dt.Columns.Add("School",typeof(string));
            _dt.Columns.Add("Data",typeof(DateTime));
        }

        public void SubmitStudents()
        {
            DataRow row = _dt.Rows.Add(new object[] {"Sam", 5, "PreSchool", DateTime.Today);
        }
    }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文