MVC - 对于循环 - 添加加法变量
本文关键字:添加 变量 于循环 MVC 循环 | 更新日期: 2023-09-27 18:36:36
im 在 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;
}
}
}
你为什么不只使用你的迭代变量,i
?
您粘贴的代码有一些错误,这里是固定代码。(更正标有 )。
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();**
}
}
希望对您有所帮助!
问候
乌罗什
尝试将变量声明为 int
,您可以使用 a++
将 a 递增 1:
int a=1;
for(.......)
{
/*******My code****************/
a++;
}
此外,您已经在 for 循环中声明了一个整数i
,每次运行循环时递增 1,因此您可以使用它而不是声明 a:
for (int i = 0; i < context.Request.Files.Count; i++)
{
...
cmd.Parameters.AddWithValue("@Number", i);
...
}
最后,我不确定为什么您的数据库中需要此列。如果将其用作唯一标识符,请将其设为主键。然后,您可以将其设置为自动递增,而无需每次都添加该值。