文件上传但不保存在数据库中 [英] File upload but not save in database
本文介绍了文件上传但不保存在数据库中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
它工作正常,消息显示(文件上传成功)但在数据库中找不到csv数据。
It work fine and message show(File uploaded Successfully) but csv data are not found in database.
protected void btn_save(object sender, EventArgs e)
{
//MySqlConnection exclecon = new MySqlConnection("Server=Localhost;DataBase=password1;user=root;password=nectar");
string path = FileUpload1.PostedFile.FileName;
string ext = Path.GetExtension(path);
string contenttype = string.Empty;
if (!FileUpload1.HasFile)
{
ClientScript.RegisterStartupScript(Page.GetType(), "validation", "<script language='javascript'>alert('Please select a file')</script>"); //if file uploader has no file selected
}
else if (FileUpload1.HasFile)
{
try
{
switch (ext)
{
case ".csv":
contenttype = "application/vnd.ms-excel";
break;
}
string year = ddlyear.SelectedItem.ToString();
string month = ddlmonth.SelectedItem.ToString();
MySqlConnection exclecon = new MySqlConnection("Server=Localhost;DataBase=password1;user=root;password=nectar");
string insquery = "INSERT INTO sla (month, year, contenttype) VALUES(@month, @year, @contenttype)";
string uploadQry = "LOAD DATA INFILE '" + path + "' INTO TABLE sla1 FIELDS TERMINATED BY ',' LINES TERMINATED BY '/n' IGNORE 1 LINES ";
MySqlCommand mycom = new MySqlCommand(insquery, exclecon);
mycom.Parameters.AddWithValue("@month", month);
mycom.Parameters.AddWithValue("@year", year);
mycom.Parameters.Add("@contenttype", MySqlDbType.VarChar).Value = contenttype;
MySqlCommand myCUpload = new MySqlCommand(uploadQry, exclecon);
exclecon.Open();
mycom.ExecuteNonQuery();
myCUpload.ExecuteNonQuery();
ClientScript.RegisterStartupScript(Page.GetType(), "validation", "<script language='javascript'>alert('File uploaded Successfully ')</script>");
}
catch (Exception ex)
{
Label4.Text = "Error: " + ex.Message.ToString();
}
}
[edit]已添加代码块 - OriginalGriff [/ edit]
[edit]Code block added - OriginalGriff[/edit]
推荐答案
您好,
因为您没有使用关键字LOCAL
在您的查询中,您需要将文件传输到运行MySQL的服务器,它应该位于MySQL进程可读的文件夹中。如果您不想将文件传输到MySQL服务器计算机,请在关键字DATA
之后添加LOCAL关键字。
请参阅此处的MySQL文档[ ^ ]
问候,
Hello,
Since you are not using keywordLOCAL
in your query, You need to transfer the file to the server on which MySQL is running and it should be in a folder readable by MySQL process. If you do not want to transfer the file to MySQL server machine then add LOCAL keyword just after the keywordDATA
.
Please refer to MySQL documentation found here[^]
Regards,
这篇关于文件上传但不保存在数据库中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文