【问题标题】:Implementing .NET Gridview with SqlDataSource - on edit exception使用 SqlDataSource 实现 .NET Gridview - 编辑异常
【发布时间】:2010-03-11 15:45:07
【问题描述】:

我正在尝试继承 .NET 2.0 Gridview 控件并实现自定义更新以在单击“编辑”时执行;但是我收到以下神秘的错误消息:“发生了意外错误。”我正在尝试访问我们的数据库日志以查看它是否在那里失败,但是在我获得访问权限之前,我无法调试该问题。这是我的代码的 sn-ps:

在 WebPart 的 CreateChildControls 方法中:

sqlDataSource.UpdateCommand = "dbo.UpdateInvoiceData";
sqlDataSource.UpdateCommandType = SqlDataSourceCommandType.StoredProcedure;
sqlDataSource.UpdateParameters.Add(new Parameter("month", DbType.Int32, "2"));
sqlDataSource.UpdateParameters.Add(new Parameter("year", DbType.Int32, "2010"));
this.Controls.Add(sqlDataSource);
EditGridView edv = new EditGridView(sqlDataSource);
this.Controls.Add(edv);

在 EditGridView 网络控件中:

加载时:

this.AutoGenerateEditButton = true;
this.AutoGenerateColumns = true;
string[] keyNames = { "Name" };
this.DataKeyNames = keyNames;
this.EnableViewState = true;
this.DataSourceID = sqlDataSource.ID;
this.DataBind();

protected override void OnRowUpdating(GridViewUpdateEventArgs e)
{
   try
   {
      sqlDataSource.UpdateParameters.Add(new Parameter("ExtraParamName", DbType.Int32, e.NewValues["ExtraParamName"].ToString()));
      sqlDataSource.UpdateParameters.Add(new Parameter("Name", DbType.String, e.NewValues["Name"].ToString()));
      sqlDataSource.UpdateParameters.Add(new Parameter("spUser", DbType.String, "test"));

    }
    catch (Exception ex)
    {
       this.Page.Response.Write("Error occurred while updating the record.  " + ex.Message);
    }
}

【问题讨论】:

  • Nikkia,为了找出错误是什么,您可以修改 web.config 以便获得堆栈跟踪而不是“意外错误”页面。见这里:blog.thekid.me.uk/archive/2007/02/15/…
  • 你能更详细地描述整个问题吗?

标签: .net gridview


【解决方案1】:

这一行:

...("ExtraParamName", DbType.Int32, e.NewValues["ExtraParamName"].ToString()));

您是说类型是 int,但您传递的是字符串(名称)。对吗?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-07-30
    • 2017-08-29
    • 1970-01-01
    • 2010-10-16
    • 2020-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多