使用C#向表格单元格添加值

时间:2013-09-17 08:12:02

标签: c# sql asp.net insert

我想将多个值添加到以逗号分隔的表格单元格中,我得到的表格是 ID,名称,类型。我想在name列中添加多个名称,因此该行将类似于:

ID  Name                              Type
1   Peter, Jas , Roden , Karen        Class A

我做了简单的插入:

[WebMethod]
public static string Insertion(string Name)  
{
    //List<string> result = new List<string>();
    SqlConnection con = new SqlConnection("Data Source=XXX;Initial Catalog=XXX;User ID=sa;Password=XXXXX");
    {
         string query = "Insert into TestTable values @Name";

        SqlCommand cmd = new SqlCommand(query, con);
        cmd.Parameters.Add("@Name", SqlDbType.NVarChar).Value = Name;
        {
            con.Open();
            cmd.ExecuteNonQuery();

            //test();
            con.Close();
            return "True";

        }
    }
}

任何人都可以指导我如何添加多个名称,这些名称应该用逗号分隔,我也需要确保没有重复的名称。

2 个答案:

答案 0 :(得分:1)

  

任何人都可以指导我如何添加多个名称,这些名称应该用逗号分隔

您需要使用参数化查询。它还可以帮助您避免SQL注入攻击。

cmd.Parameters.AddWithValue("@name",name);
  

我还需要确保没有重复的名称

这样的事情对你有用

string name = "a,b,c,d,a,b,c,d";
HashSet<string> h = new HashSet<string>(name.Split(','));
string distinctNames = string.Join(",", h);

答案 1 :(得分:1)

您可以将参数值发送为"Peter, Jas , Roden , Karen",然后将该文本插入到给定记录中。

但如果您要添加数组或名称列表,则可以轻松创建插入字符串,如下所示

var names = string.Join("," ,namesArray.Distinct());

现在您可以使用上面生成的名称字符串

来调用服务方法