【发布时间】:2017-12-18 08:02:12
【问题描述】:
我的 Web 应用程序中有 gridview
这个网格视图应该显示 3 列(表、列、new_columns)
我想在单击事件中显示网格视图,在该事件中我想绑定第一个字段(表)中的所有表,并将每个表的所有相应列绑定到网格视图内的下拉列表中,并在第二个下拉列表中绑定所有新列列表
这里是代码
DataTable test = new DataTable();
DataTable _dbtest = new DataTable();
list_of_table_of_old_database = db.Select("", "", "", "", "", "", "", "", "SELECT TABLE_NAME FROM INFORMATION_SCHEMA.tables WHERE TABLE_SCHEMA = '" + old_database.Text.Trim() + "' ", "");
list_of_table_of_current_database = db.Select("", "", "", "", "", "", "", "", "SELECT TABLE_NAME FROM INFORMATION_SCHEMA.tables WHERE TABLE_SCHEMA = '" + new_database.Text.Trim() + "' ", "");
DataView view = new DataView(list_of_table_of_old_database);
DataTable dtTable = new DataTable();
test = db.Select("", "", "", "", "", "", "", "", "select distinct k.table1 from (SELECT TABLE_NAME as table1 FROM INFORMATION_SCHEMA.tables WHERE TABLE_SCHEMA = '" + old_database.Text.Trim() + "') as k INNER JOIN (SELECT TABLE_NAME as table2 FROM INFORMATION_SCHEMA.tables WHERE TABLE_SCHEMA = '" + new_database.Text.Trim() + "')as a;", "");
DropDownList3.Items.Clear();
DropDownList3.Items.Insert(0, "--select--");
DataTable dt = new DataTable();
for (int i = 0; i < test.Rows.Count; i++)
{
_dbtest = db.Select("", "", "", "", "", "", "", "", "select a.fieldname from (SELECT COLUMN_NAME as fieldname FROM INFORMATION_SCHEMA.columns WHERE TABLE_SCHEMA = '" + old_database.Text.Trim() + "' and TABLE_NAME = '" + test.Rows[i][0].ToString() + "') as A LEFT JOIN (SELECT COLUMN_NAME as fieldname FROM INFORMATION_SCHEMA.columns WHERE TABLE_SCHEMA = '" + new_database.Text.Trim() + "' and TABLE_NAME = '" + test.Rows[i][0].ToString() + "') B on (A.fieldname = B.fieldname) where B.fieldname is null ", "");
if (_dbtest.Rows.Count > 0)
{
//here i want to display all tables in the gridview row by row (test.Rows[i][0].ToString())
}
// and i want to bind all columns (_dbtest) of each tables inside the loop in first dropdownlist in gridview
// and same columns (_dbtest) of each tables inside the loop in second dropdownlist in gridview
}
我想在运行循环时找到一些方法在gridview中绑定数据,这样我就可以为每个字段提供正确的数据
这是HTML代码
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
Height="237px" Width="632px" onrowdatabound="GridView1_RowDataBound">
<Columns>
<asp:TemplateField FooterText="tables" HeaderText="tables">
<EditItemTemplate>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField FooterText="columns" HeaderText="columns">
<ItemTemplate>
<asp:DropDownList ID="ddlcolumns" runat="server"
Height="16px" Width="181px">
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField FooterText="vms-columns" HeaderText="vms-columns">
<ItemTemplate>
<asp:DropDownList ID="ddl_vms_columns" runat="server"
Height="20px" Width="153px">
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
所以最后,此网格视图将在网格视图中显示所有表格以及该表格的每一列
【问题讨论】: