为什么此代码插入多个记录而不是一个

时间:2011-05-02 12:54:13

标签: asp.net sql-server

我试图将一些信息插入到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 个答案:

答案 0 :(得分:4)

你可能两次调用该函数。

答案 1 :(得分:1)

您执行此声明四次。

cmd.ExecuteNonQuery();

cmd表示一个SQL INSERT语句。

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

执行一次INSERT四次,除非违反约束,否则会得到四行。