如何在SQL Server 2008中的特定列中存储列值?

请找图像

基本上我正在绘制字段。 正如您在GridView 2看到的,我选择了特定的列名称。

让我们考虑第1条记录,即1 | id | Column0 1 | id | Column0 1 | id | Column0 ,对于id我选择了Column0 ,所以在数据库中我想在id列下存储列值1,2,3,4 .. 如下
id
1
2
3
所以我的问题是如何在特定列中存储列值,我在哪里动态传递列名,列值?

这是我做过的代码,我知道它错了。

  protected void Button2_Click(object sender, EventArgs e) { DataTable dtMap = new DataTable(); dtMap.Columns.AddRange(new DataColumn[3] { new DataColumn("Id", typeof(int)), new DataColumn("Source", typeof(string)), new DataColumn("Destination", typeof(string)) }); foreach (GridViewRow gr in GridView2.Rows) { int id = Convert.ToInt32(GridView2.Rows[gr.RowIndex].Cells[0].Text); string source = GridView2.Rows[gr.RowIndex].Cells[1].Text; string destination = ((DropDownList)gr.FindControl("DropDownList1")).SelectedItem.Value; DataTable dt = new DataTable(); dt = (DataTable)Session["data"]; DataColumn selectedColumn = dt.Columns[destination]; List allValues = dt.AsEnumerable().Select(r => r[selectedColumn]).ToList(); connection(); strsql = "Insert into F3_BC_Product_Mapping_Data (@source) values (@value) "; cmd = new SqlCommand(strsql, con); cmd.Parameters.AddWithValue("@source", destination); cmd.Parameters.AddWithValue("@value", allValues); con.Open(); cmd.ExecuteNonQuery(); con.Close(); dtMap.Rows.Add(id, source, destination); } 

我试了一下。 检查一下,请告诉我。

  foreach (GridViewRow gr in GridView1.Rows) { int id = Convert.ToInt32(GridView1.Rows[gr.RowIndex].Cells[0].Text); string source = GridView1.Rows[gr.RowIndex].Cells[1].Text; string destination = ((DropDownList)gr.FindControl("DropDownList1")).SelectedItem.Value; InsertDynamicColumn(source, destination); } 

这是我的InsertDynamicColumn(string source, string destination)方法。 从Session i获取DataTable后,我根据目标参数过滤了Datatable并将结果放入新列表。 其余的很容易。 从列表到源插入值。

  private void InsertDynamicColumn(string source, string destination) { //dt from Session DataTable dt = new DataTable(); dt = (DataTable)Session["myData"]; //list filtered by Column name var list = from t in dt.AsEnumerable() select new { colX = t.Field(destination),// "ColX" }; //new filtered list. var listOfColx = list.ToList(); //loop through list and insert values to source from parameters for (int i = 0; i < listOfColx.Count; i++) { connection(); strsql = string.Format("Insert into F3_BC_Product_Mapping_Data ({0}) values (@value) ", source); cmd = new SqlCommand(strsql, con); cmd.Parameters.AddWithValue("@value", listOfColx[i]); con.Open(); cmd.ExecuteNonQuery(); con.Close(); } }