当我想向datatable中添加列时,是否过度编写了datatable?我知道,如果我在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);
}
}
}