2011-05-02 54 views
0

我試圖插入一些信息到一個SQL Server表,但不是插入一條記錄它插入多記錄:爲什麼這個代碼插入多條記錄,而不是一個

string fileName1 = "imgs/" + FileUpload1.PostedFile.FileName; 
    string fileName2 = "imgs/" + FileUpload2.PostedFile.FileName; 
    string fileName3 = "imgs/" + FileUpload3.PostedFile.FileName; 
    string fileName4 = "imgs/" + FileUpload4.PostedFile.FileName; 

    System.Data.SqlClient.SqlConnection conn = new System.Data.SqlClient.SqlConnection(@"Data Source=AHMED-PC\SQLEXPRESS;Initial Catalog=test;Persist Security Info=True;User ID=sa;Password=123456"); 
    System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand("INSERT INTO img (img) VALUES (@img)", conn); 
    conn.Open(); 

    cmd.Parameters.AddWithValue("@img", fileName1); 
    cmd.ExecuteNonQuery(); 
    cmd.Parameters.Clear(); 

    cmd.Parameters.AddWithValue("@img", fileName2); 
    cmd.ExecuteNonQuery(); 
    cmd.Parameters.Clear(); 

    cmd.Parameters.AddWithValue("@img", fileName3); 
    cmd.ExecuteNonQuery(); 
    cmd.Parameters.Clear(); 

    cmd.Parameters.AddWithValue("@img", fileName4); 
    cmd.ExecuteNonQuery(); 
    cmd.Parameters.Clear(); 

    conn.Close(); 

它增加了8個或更多的記錄而不是4

使用asp.net 4

感謝

+2

您正在執行它4次 – 2011-05-02 12:56:02

+0

@CD我沒有說明我的意思,而不是4次8次,對不起 – Wahtever 2011-05-02 12:57:24

+1

請發佈您的完整代碼。我懷疑這種方法被稱爲兩次。 – 2011-05-02 12:58:25

回答

4

您可能調用了兩次函數。

+0

同意。在此方法的頂部添加一個斷點,並確保它只被調用一次。如果是,並且您仍然獲得8個或更多插頁,請告訴我們(並且請提供我們確切的插頁數量)。 – IAmTimCorey 2011-05-02 15:52:39

1

你在執行該語句 四次。

cmd.ExecuteNonQuery(); 

cmd表示一個SQL INSERT語句。

cmd = new System.Data.SqlClient.SqlCommand("INSERT INTO img (img) VALUES (@img)", conn); 

執行一次INSERT四次,除非您違反約束條件,否則您將獲得四行。

+0

再次我的錯誤沒有澄清我的意思,而不是執行4次它執行8個或更多 – Wahtever 2011-05-02 13:02:35