DataSource和DataSourceID都在'GridView1'上定义。删除一个定义
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DataSource和DataSourceID都在'GridView1'上定义。删除一个定义相关的知识,希望对你有一定的参考价值。
我想在数据库中添加一条记录,并通过点击添加在同一页面的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();
我必须在一天内完成这个项目,请帮助我。谢谢。
“如果为已经将GridView
属性值定义为DataSourceID
的DataSourceID
的数据源设置为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
对于那些遇到这个问题并且在搜索上面的错误语法后点击此线程的人只是一个FYI:
如果没有代码更改的合理可能性 - 或者是否存在,但它们应该与错误无关 - 请检查应用程序使用的TLS级别并确保它受.Net Framework级别的支持。
我刚刚帮助客户解决了这个确切的错误,并发现 - 尽管有措辞 - 问题是由于在操作系统级别下TLS 1.2版以下的协议被禁用。
由于许多组织试图实施Microsoft的指导以禁用TLS 1.2以下的协议,这可能是一种常见的误导性错误消息。
以上是关于DataSource和DataSourceID都在'GridView1'上定义。删除一个定义的主要内容,如果未能解决你的问题,请参考以下文章
使用 ASP.NET GridView 定义了 DataSource 和 DataSourceID 错误
如何获取触发 onSelecting 事件的数据源的 datasourceID?