文件上传但不保存在数据库中 [英] File upload but not save in database

查看:106
本文介绍了文件上传但不保存在数据库中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

它工作正常,消息显示(文件上传成功)但在数据库中找不到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 keyword LOCAL 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 keyword DATA.

Please refer to MySQL documentation found here[^]

Regards,


这篇关于文件上传但不保存在数据库中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆