每次使用文件上传程序

时间:2017-02-22 05:33:10

标签: javascript c# asp.net

下面是我的代码背后的代码,如果给定的月份和年份与表格中的相同,那么根据文本框中给出的月份和年份验证用户上传的文档是否正确上传到数据库,否则它返回它不是一个有效的文件。如果我通过文件上传器上传工作表再次不是一个有效的文件然后我需要再次隐藏标签msg如果不再有效的文件我应该显示不是有效的文件,上传时我需要清除标签信息,如果用户选择的文件不是有效月份再次成功上传,那么我应该显示的不是有效的文件。最后要求是清除标签每次用户使用文件上传器选择文件时都会显示消息。我该怎么做

string fileName = Path.GetFileName(FileUpload1.PostedFile.FileName);
 FileUpload1.PostedFile.SaveAs(Server.MapPath("~/Files/" + fileName));
 string fullpath = Path.GetFullPath(Server.MapPath("~/Files/" + fileName));
 ReadExcelSheet obj = new ReadExcelSheet();
 //send filepath,sheet number,selected rows to class file
 DataTable dt = obj.Read(fullpath, 1);
 bool Ismatch = false;
 string getmonth = txtfromdate.Text.Trim();
 string getyear = txtToDate.Text.Trim();
 for (int i = 0; i < dt.Rows.Count; i++)
 {
 string date = dt.Rows[i]["Month"].ToString();
 string[] date1 = date.Split('/');
 string month = date1[0];
 string year = date1[2];
 //newly added for the existing code to obtain the month and year
 //from date
 string[] splitmonth = getmonth.Split('/');
 string newmonth = splitmonth[0].ToString();
 txtfromdate.Text = newmonth.ToString();
 //To date
 string[] splityear = getyear.Split('/');
 string newyear = splityear[2].ToString();
 txtToDate.Text = newyear.ToString();
 if (month == txtfromdate.Text && year == txtToDate.Text)
 {
 Ismatch = true;
 //break;
 }
 else
 {
 Ismatch = false;
 break;
 }
 }
 if (Ismatch == true)
 {
 lblerrorMessage.Text = "Valid Document";
 }
 else
 {
 lblerrorMessage.Text = "Not a Valid Document";
 label1.Text = "";
 return;
 }
 //checking the input month and year records exists or not in DB
 SqlCommand cmd = new SqlCommand("select Uploaded from TestMCount ", con);
 SqlDataAdapter da = new SqlDataAdapter(cmd);
 DataTable DBdt = new DataTable();
 da.Fill(DBdt);
 if (DBdt.Rows.Count > 0)
 {
 int month1;
 bool validMonth = int.TryParse(txtfromdate.Text, out month1);
 int year1;
 bool validYear = int.TryParse(txtToDate.Text, out year1);
 var filteredRows = from row in DBdt.AsEnumerable()
 let date = row.Field<System.DateTime>("Uploaded")
 where date.Month == month1 && date.Year == year1
 select row;
 DataRow[] dr = filteredRows.ToArray();
 DataTable selectedrows = filteredRows.CopyToDataTable();
 if (selectedrows.Rows.Count > 0)
 {
 for (int i = 0; i <= selectedrows.Rows.Count - 1; i++)
 {
 string date2 = selectedrows.Rows[i]["Uploaded"].ToString();
 con.Open();
 SqlCommand cmd1 = new SqlCommand("delete from TestMCount where Uploaded='" + date2 + "'", con);
 SqlDataAdapter da1 = new SqlDataAdapter(cmd1);
 cmd1.ExecuteNonQuery();
 con.Close();
 }
 SqlBulkCopy objbulk = new SqlBulkCopy(con);
 objbulk.DestinationTableName = "TestMCount";
 //mapping the columns 
 objbulk.ColumnMappings.Add("ID", "MID");
 objbulk.ColumnMappings.Add("Month", "Uploaded");
 objbulk.ColumnMappings.Add("Client Name", "ClientName");
 objbulk.ColumnMappings.Add("Charges", "Charge");
 objbulk.ColumnMappings.Add("Payment", "Payment");
 objbulk.ColumnMappings.Add("Adjustment", "Adjustment");
 objbulk.ColumnMappings.Add("W/O", "WO");
 con.Open();
 objbulk.WriteToServer(dt);
 con.Close();
 label1.Text = "Uploaded Successfully";
 }
 else
 {
 SqlBulkCopy objbulk = new SqlBulkCopy(con);
 objbulk.DestinationTableName = "TestMCount";
 //mapping the columns 
 objbulk.ColumnMappings.Add("ID", "MID");
 objbulk.ColumnMappings.Add("Month", "Uploaded");
 objbulk.ColumnMappings.Add("Client Name", "ClientName");
 objbulk.ColumnMappings.Add("Charges", "Charge");
 objbulk.ColumnMappings.Add("Payment", "Payment");
 objbulk.ColumnMappings.Add("Adjustment", "Adjustment");
 objbulk.ColumnMappings.Add("W/O", "WO");
 con.Open();
 objbulk.WriteToServer(dt);
 con.Close();
 label1.Text = "Uploaded Successfully";
 }
 }
 else
 {
 SqlBulkCopy objbulk = new SqlBulkCopy(con);
 objbulk.DestinationTableName = "TestMCount";
 //mapping the columns 
 objbulk.ColumnMappings.Add("Month", "Uploaded");
 objbulk.ColumnMappings.Add("ID", "MID");
 objbulk.ColumnMappings.Add("Client Name", "ClientName");
 objbulk.ColumnMappings.Add("Charges", "Charge");
 objbulk.ColumnMappings.Add("Payment", "Payment");
 objbulk.ColumnMappings.Add("Adjustment", "Adjustment");
 objbulk.ColumnMappings.Add("W/O", "WO");
 con.Open();
 objbulk.WriteToServer(dt);
 con.Close();
 label1.Text = "Uploaded Successfully";
 }
 }
 }

我尝试了下面的代码,但问题是它清除标签消息,直到文件上传一次如果它再次上传如果我给出错误的月份和年份它没有显示错误消息它不是有效的文件< / p>

<asp:FileUpload ID="FileUpload1" runat="server"  onchange="callme();" />

function callme() {
         document.getElementById("your message label id").value= "";
       }

1 个答案:

答案 0 :(得分:0)

如果你想在javascript中清除Label的值,那么,

function callme() {
      document.getElementById("your message label id").innerHTML= "";
}

因为,Label在浏览器中呈现为跨度。 Span没有值作为属性。

如果要清除服务器端的值,则需要在c#方法的开头清除。

label1.Text = string.Empty;

希望这有帮助!