SQL Server 知道如何将datagriview中的所有列值添加到另一个datagriview中的特定单元格中吗?

omqzjyyz  于 2023-01-25  发布在  其他
关注(0)|答案(1)|浏览(71)

所以我被这个问题难住了。
我需要获取另一个表(tbladdbenefit)的所有列值,并将它们添加到另一个表(payrolltable)中,然后将第一个表的所有值插入到单个单元格中。
在本例中,我尝试将列"benefit"的所有值插入到新表中的单个"benefit"单元格中,对于"BenefitAmount"也是如此。
到目前为止,我正在使用参数。AddWithValue,但没有效果。我有2列数据受益于第一个表,但它只显示我突出显示的记录。这不是我想做的。我想显示和添加我的父表的所有记录
有什么建议吗?

cmd = new SqlCommand("INSERT INTO payrolltable " + 
                      "(Name, " + 
                      "Position, " + 
                      "Honoraria, " + 
                      "Total, " + 
                      "Benefit, " + 
                      "BenefitAmount, " + 
                      "Deduction, " + 
                      "DeductionAmount) " + 
                      "VALUES " + 
                      "(@name, " + 
                      "@position, " + 
                      "@honoraria, " + 
                      "@total, " + 
                      "@benefit, " + 
                      "@benefitamount, " + 
                      "@deduction, " + 
                      "@deductionamount)", con);

 cmd.Parameters.AddWithValue("@name", txtfname.Text + " " + txtlname.Text);
 cmd.Parameters.AddWithValue("@position" , txtposition.Text);
 cmd.Parameters.AddWithValue("@honoraria", txtsalary.Text);
 cmd.Parameters.AddWithValue("@total", 323232);
 cmd.Parameters.AddWithValue("@benefit", SqlDbType.VarChar);
 cmd.Parameters.AddWithValue("@benefitamount", SqlDbType.BigInt);
 cmd.Parameters.AddWithValue("@deduction", " ");
 cmd.Parameters.AddWithValue("@deductionamount", " ");
              
                
 for (int i = 0; i < tbladdbenefit.Rows.Count - 1; i++)
 {
  cmd.Parameters["@benefit"].Value = tbladdbenefit.Rows[i].Cells[1].Value;
  cmd.Parameters["@benefitamount"].Value = tbladdbenefit.Rows[i].Cells[2].Value;
 }
jbose2ul

jbose2ul1#

有几种方法可以在数据库表的一列中存储多个值。
您可以将其存储为CSV(逗号分隔值)、JSON或XML,但当您想要更新此列值或想要查询此表时,它会有其缺点。
另外,也可以参考this

按要求提供样品:

请按照示例来帮助您理解概念。

List<string> ls = new List<string>();
for (int i = 0; i < tbladdbenefit.Rows.Count - 1; i++)
{
    ls.Add(tbladdbenefit.Rows[i].Cells[1].Value);
}

string csv = string.Join(",", ls);
cmd.Parameters["@benefit"].Value = csv;

相关问题