DataSource和DataSourceID都在'GridView1'上定义。删除一个定义

问题描述 投票:1回答:2

我想在数据库中添加一条记录,并通过点击添加在同一页面的gridview上查看。对于刷新和更新gridview,我使用showData(),如下所示:

 protected void ShowData()
{

    SqlConnection con = new SqlConnection(@"Data Source=.;Initial Catalog=Khayati;Integrated Security=True");

    con.Open();
    string qu = string.Format("Select * from Ordertb ", con);
    SqlDataAdapter da = new SqlDataAdapter(qu, con);
    DataSet ds = new DataSet();
    da.Fill(ds, "logtbl");
    if (ds.Tables["logtbl"].Rows.Count > 0)
    {
        GridView1.DataSource = ds.Tables[0];
        GridView1.DataBind();
    }
    con.Close();
}

但是有这个错误:

“DataSource和DataSourceID都在'GridView1'上定义。删除一个定义。描述:在执行当前Web请求期间发生了未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的更多信息。

异常详细信息:System.InvalidOperationException:DataSource和DataSourceID都在“GridView1”上定义。删除一个定义。“

而这个错误指向:

GridView1.DataBind();

我必须在一天内完成这个项目,请帮助我。谢谢。

c# gridview data-binding
2个回答
0
投票

“如果为已经将GridView属性值定义为DataSourceIDDataSourceID的数据源设置为ASPX页面标记中的某个数据源,则经常会出现”在X上定义DataSource和DataSourceID“。

要解决此问题,请在代码隐藏时将if (ds.Tables["logtbl"].Rows.Count > 0) { GridView1.DataSourceID = null; // string.Empty can also used GridView1.DataSource = ds.Tables[0]; GridView1.DataBind(); } 属性设置为null:

DataSourceID

或者从GridView页面标记中删除<%-- Before --%> <asp:GridView ID="GridView1" runat="server" DataSourceID="ADataSource" ... /> <%-- After --%> <asp:GridView ID="GridView1" runat="server" ... /> 属性:

Both DataSource and DataSourceID are defined on ‘GridView1’. Remove one definition.

参考文献:

Both DataSource and DataSourceID are defined on 'GridView2'. Remove one definition

qazxswpoi


0
投票

对于那些遇到这个问题并且在搜索上面的错误语法后点击此线程的人只是一个FYI:

如果没有代码更改的合理可能性 - 或者是否存在,但它们应该与错误无关 - 请检查应用程序使用的TLS级别并确保它受.Net Framework级别的支持。

我刚刚帮助客户解决了这个确切的错误,并发现 - 尽管有措辞 - 问题是由于在操作系统级别下TLS 1.2版以下的协议被禁用。

由于许多组织试图实施Microsoft的指导以禁用TLS 1.2以下的协议,这可能是一种常见的误导性错误消息。

© www.soinside.com 2019 - 2024. All rights reserved.