【发布时间】:2016-06-18 05:16:44
【问题描述】:
我有一个gridview,生成的输出是
但我想删除Column_Name 列并想要这种类型的输出
永远不要更改 SQL 查询,因为这样查询会根据我的逻辑工作。而且我还想删除每个文本框中的&nbsp,如何使用循环获取所有gridview数据并保存在SQL Server数据库中?
ASPX:
<asp:Content ID="Content2" ContentPlaceHolderID="body" Runat="Server">
<form id="form" runat="server">
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="true"
onrowdatabound="GridView1_RowDataBound">
</asp:GridView>
<asp:Button ID="Button1" runat="server" OnClick="load" Text="gridview" />
<asp:Button ID="Button2" runat="server" OnClick="show" Text="Button" />
<asp:Button ID="Button3" runat="server" OnClick="save" Text="Save" />
</form>
</asp:Content>
代码隐藏:
SqlConnection cnn = new SqlConnection("Data Source=LIFE_WELL;Initial Catalog=db_compiler;Integrated Security=True");
protected void Page_Load(object sender, EventArgs e)
{
string query = "USE db_compiler SELECT Column_Name FROM tbl_field WHERE Table_Name='deptt'";
SqlCommand cmd = new SqlCommand(query, cnn);
DataTable dt = new DataTable();
SqlDataAdapter adp = new SqlDataAdapter(cmd);
DataTable table = new DataTable();
adp.Fill(dt);
Session["num"] = dt.Rows.Count;
for (int i = 0; i < dt.Rows.Count; i++)
{
DataColumn dc = new DataColumn(dt.Rows[i]["Column_Name"].ToString());
dt.Columns.Add(dc);
}
DataRow r = table.NewRow();
GridView1.DataSource = table;
GridView1.DataBind();
cnn.Close();
cnn.Open();
cmd.ExecuteNonQuery();
cnn.Close();
Session["table"] = dt;
GridView1.DataSource = dt;
GridView1.DataBind();
}
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
for (int i = 0; i < e.Row.Cells.Count; i++)
{
TextBox txt = new TextBox();
txt.Text = e.Row.Cells[i].Text;
e.Row.Cells[i].Text = "";
e.Row.Cells[i].Controls.Add(txt);
}
}
}
【问题讨论】:
-
设置“AutogenerateColumns=false”并定义您自己的列....
-
你能在我的代码中做一些改变吗???我的代码工作得很好。你能在gridview中隐藏
Column_Name列,当从gridview获取数据时column_name数据永远不会插入。谢谢跨度>
标签: c# asp.net gridview sql-server-2012