2017-06-21 39 views
0

我一直在编码到:DataGrid中以DB - 使用“头文字”或“设计名称”

  • 阅读XLS文件
  • 变换为CSV(原因:我将不得不操纵文件很多)
  • 创建一个头(该CSV的第一行)
  • 使用CSV以填充DataGrid
  • 上传数据网格到DB

问题: - 我总是使用“设计名称”在数据库中上传。例如:

for (int i = 0; i < DgridManuallyReceive.Rows.Count - 1; i++) 
       { 
       str = @"INSERT INTO TBL_MATRIX_CONTROL (A1 
                 A2 
                 A3 
                 A4 
                 A5 
                 A5 
                 A6 
                 A7 
                 A8 
                 A9 
                 A10 
                 A11 
                 A12 
                 A13 
                 ('" + 
                 DgridManuallyReceive.Rows[i].Cells["A1"].Value + "', '" + 
                 DgridManuallyReceive.Rows[i].Cells["A2"].Value + "', '" + 
                 DgridManuallyReceive.Rows[i].Cells["A3"].Value + "', '" + 
                 DgridManuallyReceive.Rows[i].Cells["A4"].Value + "', '" + 
                 DgridManuallyReceive.Rows[i].Cells["A5"].Value + "', '" + 
                 DgridManuallyReceive.Rows[i].Cells["A6"].Value + "', '" + 
                 DgridManuallyReceive.Rows[i].Cells["A7"].Value + "', '" + 
                 DgridManuallyReceive.Rows[i].Cells["A8"].Value + "', '" + 
                 DgridManuallyReceive.Rows[i].Cells["A9"].Value + "', '" + 
                 DgridManuallyReceive.Rows[i].Cells["A10"].Value + "', '" + 
                 DgridManuallyReceive.Rows[i].Cells["A11"].Value + "', '" + 
                 DgridManuallyReceive.Rows[i].Cells["A12"].Value + "', '" + 
                 id_tbl_program 
                 + "');"; 

的 “DgridManuallyReceive.Rows [I] .Cells [” A1 “]值。” 是指DataGridl的 “内部” 的名称。

问:

  • 我如何发现和利用这些“内部”的名字,如果我的DataGrid的头正被“自动”产生的?用于填充数据网格的代码

部分:

private void BindDataCSV(string filePath) 
{ 
    DataTable dt = new DataTable(); 
    string[] lines = System.IO.File.ReadAllLines(filePath); 
    if (lines.Length > 0) 
    { 

     // first line to create header 
     string firstLine = lines[0]; 
     string[] headerLabels = firstLine.Split(','); 
     //string[] headerLabels = new string[] { dataGridView1.Columns[0].HeaderText }; 
     //string[] headerLabels = {"TestGroup" }; 




     foreach (string headerWord in headerLabels) 
     { 
      dt.Columns.Add(new DataColumn(headerWord)); 
     } 

     // for data 

     for (int r = 1; r < lines.Length; r++) 
     { 
      string[] dataWords = lines[r].Split(','); 
      DataRow dr = dt.NewRow(); 
      int columnIndex = 0; 
      foreach (string headerWord in headerLabels) 
      { 

       dr[headerWord] = dataWords[columnIndex++]; 
      } 

      dt.Rows.Add(dr); 

     } 


    } 

    if (dt.Rows.Count > 0) 
    { dataGridView1.DataSource = dt; } 

} 

我的CSV的第一行会成为我的DataGrid的标题。但我不需要这些名称,而是需要将字段的内部名称上载到数据库。

What do I mean with "Design name" and "Header name"

+0

请注意SQL注入 – Alejandro

回答

0

我可以使用任一名称来解决我的问题。我的意思是,在这种情况下,我可以使用“标题名称”。该代码还可以识别并上传到数据库。

相关问题