我在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;
}
}
}
答案 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