C# 如何在C中将GridView连接到两个不同的SQLDataSource#

C# 如何在C中将GridView连接到两个不同的SQLDataSource#,c#,asp.net,gridview,ado.net,C#,Asp.net,Gridview,Ado.net,我想知道如何将一个GridView连接到两个SqlDataSource对象 目前,我遇到一个错误,指出DataSource和DataSourceID都是在“GridView1”上定义的,所以我删除了一个定义。但我不想删除任何定义,因为这两个定义都很重要 Aspx标记 SqlDataSource1 <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ Co

我想知道如何将一个
GridView
连接到两个
SqlDataSource
对象

目前,我遇到一个错误,指出DataSource和DataSourceID都是在“GridView1”上定义的,所以我删除了一个定义。但我不想删除任何定义,因为这两个定义都很重要

Aspx标记

SqlDataSource1

<asp:SqlDataSource ID="SqlDataSource1" runat="server" 
                ConnectionString="<%$ ConnectionStrings:DBCS %>" 
                DeleteCommand="DELETE FROM [vendor_master] WHERE [vendorID] = @vendorID" 
                InsertCommand="INSERT INTO [vendor_master] ([Vname], [Email], [Mobile], [Landline], [Address], [Pincode]) VALUES (@Vname, @Email, @Mobile, @Landline, @Address, @Pincode)" 
                SelectCommand="SELECT * FROM [vendor_master]" 
                UpdateCommand="UPDATE [vendor_master] SET [Vname] = @Vname, [Email] = @Email, [Mobile] = @Mobile, [Landline] = @Landline, [Address] = @Address, [Pincode] = @Pincode WHERE [vendorID] = @vendorID">
                <DeleteParameters>
                    <asp:Parameter Name="vendorID" Type="Int32" />
                </DeleteParameters>
                <InsertParameters>
                    <asp:Parameter Name="Vname" Type="String" />
                    <asp:Parameter Name="Email" Type="String" />
                    <asp:Parameter Name="Mobile" Type="Int64" />
                    <asp:Parameter Name="Landline" Type="Int64" />
                    <asp:Parameter Name="Address" Type="String" />
                    <asp:Parameter Name="Pincode" Type="Int32" />
                </InsertParameters>
                <UpdateParameters>
                    <asp:Parameter Name="Vname" Type="String" />
                    <asp:Parameter Name="Email" Type="String" />
                    <asp:Parameter Name="Mobile" Type="Int64" />
                    <asp:Parameter Name="Landline" Type="Int64" />
                    <asp:Parameter Name="Address" Type="String" />
                    <asp:Parameter Name="Pincode" Type="Int32" />
                    <asp:Parameter Name="vendorID" Type="Int32" />
                </UpdateParameters>
            </asp:SqlDataSource>

必须在一个SQLDatasource中联接2个表。如下所示:

SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate
  FROM Orders
  INNER JOIN Customers
  ON Orders.CustomerID=Customers.CustomerID; 

错误是
数据源和数据源ID都是清晰的。问题出在
Gridview
的html中

删除一个属性
DataSource
DataSourceID

类似的问题

  • 编辑1 或者您尝试从设计端使用
    sqldatasource
    以及从代码背后使用c代码将数据绑定到数据网格

    <asp:gridview  runat="server" autogeneratecolumns="False" 
         DataSourceID="Datasource1">
    
    
    

    这里指定了
    DataSourceID
    ,并在代码隐藏
    GridView1.DataSource=SqlDataSource2
    导致了问题。

    在每次单击事件时简单地执行,而不是
    GridView1.DataSource=SqlDataSource2
    更改

    protected void btnFindName_Click(object sender, EventArgs e)
        {
            GridView1.DataSourceID = "SqlDataSource2";
            GridView1.DataBind();
        }
    

    为什么要更改数据源?
    <asp:gridview  runat="server" autogeneratecolumns="False" 
         DataSourceID="Datasource1">
    
    protected void btnFindName_Click(object sender, EventArgs e)
        {
            GridView1.DataSourceID = "SqlDataSource2";
            GridView1.DataBind();
        }