如何将数据添加到sql但是一个id和多个数据?

时间:2010-05-06 08:01:27

标签: c# .net sql sql-server visual-studio

我有一个id和更多filepaths.forexample:

ID:123456

文件路径: C:/a.jpg C:/b.jpg C:/c.jpg C:/d.jpg C:/e.jpg

结果必须是:
123456 | C:/a.jpg
123456 | C:/b.jpg
123456 | C:/c.jpg
123456 | C:/d.jpg
123456 | C:/e.jpg

如何为一个ID添加多个路径

但我的结果是:


123456 | C:/e.jpg

我需要其他人

  public bool AddDCMPath2(string id, string[] FilePath)
        {
            SqlConnection con = new SqlConnection("Data Source=(localhost);Initial Catalog=ImageServer; User ID=sa; Password=GENOTIP;");
            SqlCommand cmd = new SqlCommand("INSERT INTO StudyDCM (StudyInstanceUid,FilePath) VALUES (@StudyInstanceUid,@FilePath)", con);
            try
            {
                con.Open();
                cmd.CommandType = CommandType.Text;


                foreach (string filepath in FilePath)
                {
                    cmd.Parameters.AddWithValue("@id", id);
                    cmd.Parameters.AddWithValue("@FilePath", filepath);
                    cmd.ExecuteNonQuery();
                }
            }
            finally
            {
                if((con!=null))
                con.Dispose();
                if((cmd!=null))
                cmd.Dispose();
            }
            return true;
        }

2 个答案:

答案 0 :(得分:1)

您必须将它们序列化为单个字符串,即使用分隔符(例如“|”)连接路径,然后将组合的字符串输入数据库。读取时,获取组合字符串并将其拆分,然后使用路径。

答案 1 :(得分:0)

 foreach (string filepath in FilePath)
                {
                    cmd.Parameters.AddWithValue("@StudyInstanceUid", StudyInstanceUid);
                    cmd.Parameters.AddWithValue("@FilePath", filepath);
                    cmd.ExecuteNonQuery();
                   cmd.Parameters.Clear();

                }