【问题标题】:GridView in ASP.NETASP.NET 中的 GridView
【发布时间】:2011-05-18 11:42:42
【问题描述】:

我正在使用 DataGrid 控件。我将它与 ADO.NET 绑定。

我希望如果有任何新数据出现,它应该在网格视图中将其附加到旧数据列中。这是怎么做到的?

DataTable dt = new DataTable();
SqlConnection con = new SqlConnection();
con.ConnectionString = "server = (local); initial Catalog = SQLTraining; Integrated Security = SSPI";
con.Open();
string Selectstring = "select "+attribute_name+" from "+tablename+"";
SqlCommand cmd = new SqlCommand(Selectstring, con);
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(dt);

gd.DataSource = dt;
gd.DataBind();

【问题讨论】:

    标签: c# asp.net data-binding gridview ado.net


    【解决方案1】:

    尝试使用DataTable.Merge():

    DataTable newData = GetDataFromDatabase(); // your code there
    DataTable oldData = (DataTable)gd.DataSource;
    gd.DataSource = oldData.Merge(newData);
    gd.DataBind();
    

    无论如何,考虑使用using(){} 块:

    DataTable dataTable = new DataTable();
    string connectionString = "server = (local); initial Catalog = SQLTraining; Integrated Security = SSPI";
    string selectCommandText = String.Format("SELECT {0} FROM {1}",
        attribute_name,
        tablename);
    using (SqlConnection selectConnection = new SqlConnection(connectionString))
    {
        using (SqlDataAdapter adapter = new SqlDataAdapter(selectCommandText, selectConnection))
        {
            adapter.Fill(dataTable);
        }
    }
    gridView.DataSource = dataTable;
    gridView.DataBind();
    

    【讨论】:

    • @naveen:为了更正确,最好使用参数化查询。你能补充一下吗?:)
    【解决方案2】:

    您可以使用DataTable.Merge 方法。看看MSDN

    【讨论】:

      【解决方案3】:

      使用此代码合并数据集

      dataSet.Merge(changeDataSet);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-07
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多