MVC - For循环 - 添加附加变量

时间:2013-10-23 10:30:19

标签: c# asp.net-mvc-4

我在mvc4 visual studio中处理一个项目,并添加了一个Uploadhandler.ashx.cs来上传文件。

代码正在上传文件并将信息插入我的数据库。

现在我尝试/需要:

我添加了一个列,我希望插入每行的数字,如1,2,3,4等......

在我的代码中,我有一个for循环来执行我想要的每个文件。

如何生成一个自动添加+1的变量,将其插入我的数据库。

我尝试了很多类似的事情:

var a=1;

for(.......)
{

/*******My code****************/

a=a+1;
}

希望有人可以伸出援助之手:

这是我的代码:

 private void UploadWholeFile(HttpContext context, List<FilesStatus> statuses)
        {
            using (SqlConnection cn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString))
            {
                var a= 1;

                for (int i = 0; i < context.Request.Files.Count; i++)
                {
                    var file = context.Request.Files[i];

                    var fullpath = "/Files/"  + Path.GetFileName(file.FileName);

                    var myfilename=Path.GetFileName(file.FileName);

                    file.SaveAs(fullpath);

                    statuses.Add(new FilesStatus(fullName, file.ContentLength, fullpath 

                    string sql1 = "insert into Image(FileName, Number) values (@FileName, @Number)";

                    using (SqlCommand cmd = new SqlCommand(sql1, cn))
                    {  
                        cmd.Parameters.AddWithValue("@FileName", myfilename);
                        cmd.Parameters.AddWithValue("@Number", a);
                        cn.Open();
                        cmd.ExecuteNonQuery();
                        cn.Close();
                    }

                    a = a + 1;
                }
            }
        }

3 个答案:

答案 0 :(得分:0)

尝试将变量声明为int,您可以使用a++将a增加1:

int a=1;

for(.......)
{

    /*******My code****************/

    a++;
}

此外,您在for循环中声明了一个整数i,每次循环运行时都会增加1,因此您可以使用它而不是声明:

for (int i = 0; i < context.Request.Files.Count; i++)
{
     ...
     cmd.Parameters.AddWithValue("@Number", i);
     ...
}

最后,我不确定为什么你的数据库中根本不需要这个列。如果您将其用作唯一标识符,请将其设为主键。然后,您可以将其设置为自动递增,而无需每次都添加值。

答案 1 :(得分:0)

为什么不直接使用迭代变量i

答案 2 :(得分:0)

您的粘贴代码有一些错误,这里是固定代码。 (更正标有)。

private void UploadWholeFile(HttpContext context, List<FilesStatus> statuses)
{
    using (SqlConnection cn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString))
    {
        var a= 1;

        **cn.Open();**

        for (int i = 0; i < context.Request.Files.Count; i++)
        {
            var file = context.Request.Files[i];

            var fullpath = "/Files/"  + Path.GetFileName(file.FileName)

            file.SaveAs(fullpath);

            **statuses.Add(new FilesStatus(fullName, file.ContentLength, fullpath));** 

            **string sql1 = "insert into Imagem(FileName, Number, Id_Magazine, Tem_Conteudo) values (@FileName, @Number, @Id_Magazine, @Tem_Conteudo)";**

            using (SqlCommand cmd = new SqlCommand(sql1, cn))
            {
                cmd.Parameters.AddWithValue("@NomeFicheiro", myfilename);
                cmd.Parameters.AddWithValue("@Id_Magazine", context.Request.Form["MagazineId"]);
                cmd.Parameters.AddWithValue("@Tem_Conteudo", false);
                cmd.Parameters.AddWithValue("@Number", a++);

                **cmd.ExecuteNonQuery();**
            }           
        }

        **cn.Close();**
    }
}

希望它有所帮助!

此致

UROS