2010-05-06 49 views
0

我有一個ID和多個filepaths.forexample:如何添加數據到SQL,但爲一個ID和多個數據?

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; 
     }
+0

這應該是可能的只要StudyInstanceUid沒有得到一個UNIQUE約束就可以了。你遇到了什麼錯誤? – oedo 2010-05-06 08:17:50

+0

我沒有錯誤,它只添加一行。 – Penguen 2010-05-06 08:22:55

+0

我重新安排了我的問題 – Penguen 2010-05-06 08:25:20

回答

1

您必須將它們序列化爲單個字符串,即使用'|'等分隔符連接路徑,然後將組合的字符串輸入到數據庫中。閱讀時,獲取組合的字符串並拆分它,然後使用路徑。

+0

這個C#代碼只添加最後一個。但我需要整個 – Penguen 2010-05-06 08:25:54

+0

我的答案是如何解決這個問題。 – 2010-05-06 10:01:55

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

       }
相關問題