【发布时间】:2018-07-13 02:15:27
【问题描述】:
当我认为我正在向它添加列时,我是否覆盖了数据表?我知道,如果我在 _FinishButton() 事件中写入输出窗口,我的结果就在那里,但是当我在 pushdatatosql() 方法中写入输出时,它是空的。我将 Datatable 声明为类变量。
我在这里写错了什么?
DataTable dtResult = new DataTable();
protected void FinishBtn_Click(object sender, EventArgs e)
{
pushdatatosql();
}
protected void Wizard1_FinishButtonClick(object sender, WizardNavigationEventArgs e)
{
DataRow dr = null;
dtResult.Columns.Add(new DataColumn("mainevent", typeof(string)));
dtResult.Columns.Add(new DataColumn("secondevent", typeof(string)));
foreach (GridViewRow gr in grdOther.Rows)
{
dr = dtResult.NewRow();
TextBox box1 = (TextBox)gr.Cells[1].FindControl("txtmainevent");
TextBox box2 = (TextBox)gr.Cells[2].FindControl("txtse");
dr["mainevent"] = box1.Text;
dr["secondevent"] = box2.Text;
dtResult.Rows.Add(dr);
}
}
protected void pushdatatosql()
{
foreach (DataRow dataRow in dtResult.Rows)
{
foreach (var item in dataRow.ItemArray)
{
System.Diagnostics.Debug.WriteLine(item);
}
}
using (SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["SQLString"].ConnectionString))
{
connection.Open();
using (SqlBulkCopy bulkCopy = new SqlBulkCopy(connection))
{
foreach (DataColumn c in dtResult.Columns)
bulkCopy.ColumnMappings.Add(c.ColumnName, c.ColumnName);
bulkCopy.DestinationTableName = "TestInsertTable";
bulkCopy.WriteToServer(dtResult);
}
}
}
【问题讨论】:
-
@mason - 你会如何推荐我这样做?
-
暂缓我之前关于不使用 DataTables 的声明。我向下滚动,看到您正在使用 SqlBulkCopy。这是 DataTables 的合法用途。
标签: c# asp.net datatable webforms