【问题标题】:Updating my database更新我的数据库
【发布时间】:2011-01-04 13:04:39
【问题描述】:

我是 subsonic 的新手,尝试从 sql server 更新数据库时遇到问题。我创建了一个gridview,仍然没有返回更新结果。你能帮我么?它在 dc.AddMostaHse() 上收到错误代码; (不能将类型'void'隐式转换为'object')

这是DataAccess.cs页面的代码

public void AddMostaHse() {

        Mosta.MostaHSE1 xx = new MostaHSE1();
        xx.ID = 94;
        xx.FunctionLocation = "lza94";
        xx.acno = 12;
        xx.Save();
    }

将其与 gridview 绑定。 {

        DataAccess dc = new DataAccess();
        gvtest.DataSource = dc.AddMostaHse();
        gvtest.DataBind();

    }

【问题讨论】:

    标签: c# .net asp.net subsonic subsonic3


    【解决方案1】:

    这没有多大意义。您的 gridview 应该从读取操作中绑定。您当前正在根据您提供的内容将其绑定到插入/写入操作。您可能应该获取 MostaHSE1() 的集合并将其显示在您的网格视图中。您的 Read 函数的返回类型很可能是 DataTable 或 DataSet。

    您的 AddMostHse1() 似乎应该可以工作,但您希望针对 gridview 之外的另一个事件来执行此操作。也许是 RowEditEnding 或其他一些事件。

    【讨论】:

      【解决方案2】:

      您的方法 AddMostaHse 返回 void(不返回)。您不能将数据网格绑定到 void。如果您想将数据网格绑定到您刚刚在方法中创建的对象,请将您的方法更改为:

      public MostaHSE1 AddMostaHse() {
      
              Mosta.MostaHSE1 xx = new MostaHSE1();
              xx.ID = 94;
              xx.FunctionLocation = "lza94";
              xx.acno = 12;
              xx.Save();
              return xx;
          }
      

      你为什么要将一个对象绑定到数据网格对我来说似乎很奇怪(更不用说为什么要将这样的创建对象绑定到数据网格,我假设你只是在测试),通常你绑定一组对象..因此这可能不会带来您想要的结果。

      你的数据网格更常见的候选者是这样的:

      public IEnumerable<MostaHSE1> GetAllMostaHse() {
      
              return Mosta.MostaHSE1.All();
      
          }
      

      【讨论】:

      • 感谢您的帮助。你说得对。所以你有什么建议?显示更新的最佳方法是什么?抱歉,如果造成任何不便,但我是这个系统的新手。非常感谢您的耐心!
      猜你喜欢
      • 2016-02-08
      • 1970-01-01
      • 1970-01-01
      • 2015-01-17
      • 2021-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-16
      相关资源
      最近更新 更多