|
Yes, I know that I have to fix the error. but How that is my question.
|
|
|
|
|
How can we know? You haven't provided the exact error.
However, data type mismatch means just that, trying to put dec into int or string into int. It should be very easy for you to find if you debug the code.
There are only 10 types of people in the world, those who understand binary and those who don't.
|
|
|
|
|
I've googled but cannot find a solution that works. I've found and gotten to work uploading, viewing and downloading files to/from folders on my server. These are shown in bound gridviews on 2 pages. Now what i need is to allow the user to delete files when they are out of date. Below is the code. If anyone can point me in the right directions i would greatly appreciate it!
Attachments:<asp:FileUpload ID="fileUpload1" runat="server" /><br />
<asp:Button ID="btnUpload" runat="server" Text="Upload" onclick="btnUpload_Click" usesubmitbehavior="false"/>
<asp:GridView ID="gvDetails" CssClass="Gridview" runat="server"
AutoGenerateColumns="False"
DataSourceID="SqlDataSource2">
<HeaderStyle BackColor="#df5015" />
<Columns>
<asp:BoundField DataField="Id" HeaderText="Id" Visible="False" />
<asp:BoundField DataField="filepath" HeaderText="filepath" Visible="False" />
<asp:BoundField DataField="FileName" HeaderText="File Name" />
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton ID="lnkDownload" runat="server" Text="Download" OnClick="lnkDownload_Click"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="CVSNumber" HeaderText="Company Auto" Visible="False" />
</Columns>
</asp:GridView>
VB Code-
Protected Sub btnUpload_Click(ByVal sender As Object, ByVal e As EventArgs)
Dim cvsfilename As String = Path.GetFileName(fileUpload1.PostedFile.FileName)
Dim firmcvs As String = CompanyAuto_TB.Text
fileUpload1.SaveAs(Server.MapPath("files/" & cvsfilename))
sql = "Insert INTO tblFiles(Filename, Filepath,CVSNumber) "
sql += "values(@Name,@PAth,@CompanyAuto_tb) "
Dim cmd As SqlCommand = New SqlCommand(sql, New SqlConnection(conString))
cmd.Parameters.AddWithValue("@Name", cvsfilename)
cmd.Parameters.AddWithValue("@Path", "files/" & cvsfilename)
cmd.Parameters.AddWithValue("@CompanyAuto_tb", firmcvs)
Try
cmd.Connection.Open()
cmd.ExecuteNonQuery()
Catch ex As Exception
Response.Write(ex.ToString())
Finally
If cmd IsNot Nothing Then
If cmd.Connection.State <> ConnectionState.Closed Then
cmd.Connection.Close()
End If
cmd.Dispose()
End If
End Try
Protected Sub lnkDownload_Click(ByVal sender As Object, ByVal e As EventArgs)
Dim lnkbtn As LinkButton = TryCast(sender, LinkButton)
Dim gvrow As GridViewRow = TryCast(lnkbtn.NamingContainer, GridViewRow)
Dim filePath As String = gvDetails.DataKeys(gvrow.RowIndex).Value.ToString()
Response.ContentType = "image/jpg"
Response.AddHeader("Content-Disposition", "attachment;filename=""" & filePath & """")
Response.TransmitFile(Server.MapPath(filePath))
Response.[End]()
End Sub
|
|
|
|
|
If the files are located on the File system of your web application, (not in database; like most of the developers do to store the binary data in database, for me this option is just too-foolish) you can execute the command to delete the file; like you do in any other .NET application.
The following MSDN link[^], has the method to delete the files from File system. You can use the VB version of the code; right now it is in C# or depending on your choice of MSDN code samples.
The sh*t I complain about
It's like there ain't a cloud in the sky and it's raining out - Eminem
~! Firewall !~
|
|
|
|
|
Unfortunately, that would give me the entire list of files. The gridview is tied to the specific record on screen and the file(s) are shown in the gridview. I do not want users to have to hunt to find a record to delete. I just want a delete button next to the download button to remove the file.
|
|
|
|
|
Did you try to understand what I told you?
The link I gave, was about "How to delete one single instance of file from your machine". You can use it, to delete one file (at a time). It won't give you the list of files, that is the job of Directory.EnumerateFiles(string location) [^] to provide you with the list of files available in a directory.
The button that you're talking about, that has been tied to the delete event. You can write this code in it.
void Button_Click(object sender, EventArgs e) {
string file = "You can pass the location from a parameter.";
File.Delete(file);
}
Once this code would execute, the file at that location (you need to pass the location of the file to delete, so embed the file path somewhere alongwith the button) would be deleted.
The sh*t I complain about
It's like there ain't a cloud in the sky and it's raining out - Eminem
~! Firewall !~
|
|
|
|
|
That's my problem. I cannot get the path. I have the folder path, I have the file name but putting both together in the delete button is frustrating me.
|
|
|
|
|
Why is it frustrating at all?
Now this is somewhat stupid for me, concatenating the directory and filename is frustrating. In which sense actually? You're concatenating it to extract the file from the machine, but you're having psychological troubles while concatenating the both while you're about to delete?
The sh*t I complain about
It's like there ain't a cloud in the sky and it's raining out - Eminem
~! Firewall !~
|
|
|
|
|
It's frustrating because it's not working. I'm very much a novice at this. I've tried several different ways of taking the folder "~/files/" and the file name, tying them together and deleting the file.
|
|
|
|
|
First, sorry for being rude.
Secondly, you should try this code then.
File.Delete(Server.MapPath("~/Files/Location.format"));
You can pass the virtual location to your file and it would delete the real file from the machine. The Server.MapPath[^] should be used when working on a web application, on an HTTP server you don't specifically share the actual path to a resource, instead you share the virtual path to the file using a URL and a domain and so on, in such scenarios Server.MapPath() is used to handle the virtual paths and converts it to real path; such as D:\Files\Location.format. You can read the MSDN document I have attached to the answer too.
The sh*t I complain about
It's like there ain't a cloud in the sky and it's raining out - Eminem
~! Firewall !~
|
|
|
|
|
I've tried multiple ways but I cannot get the filename to come over. I'm thinking this is a lost cause and will be stuck going into the folder and manually deleting the files and the line in the table
|
|
|
|
|
I have a page with 6 textbox. I want to fetch data from database ms access but there may be many combination like user fill only one box and fetch or user can fill more than one box and fetch data. there may be many combination.
i have emp_id, from date, to date, expiry date, request number, status.
combination may be user only fill one box i.e emp_id or from date or status etc.
or user can fill emp_id and status and request number and from date etc.
|
|
|
|
|
|
The problem is I am not able to understand whether to check if textbox1.text is not null and textbox2.text is not null then perform this query for every possible combination or what?
|
|
|
|
|
Firstly, please don't fill you message with emoticons, they add nothing useful.
Secondly, it is just a matter of checking your textboxes in order, and if they contain a value then adding them to your query. So, your final query would be built up something like:
SELECT [record qualifier] WHERE Parameter1=@Value1 AND Parameter2=@Value2 ... "
adding each parameter as appropriate, ensuring you use a proper parameterized query, not a concatenated string.
|
|
|
|
|
So I have to check every possible combinations with textboxes.
|
|
|
|
|
No, you just check each one in order, and if it contains a value then you add the details to your query. After checking all textboxes you will have built a query that contains parameters from only those textboxes that have been filled in.
|
|
|
|
|
I have a page with a grid view and it has a link button called Details. When I click on Details it shows the detailed view below panel with all textboxes and dropdowns. I also have a button Export-to-Excel. This button when first loaded will be one. But soon clicked on detailed view it appears twice. wondering where is this coming from. I don't see anything wrong on ASPX page.
Your help is much appreciated.
Thanks
Happy Coding!
|
|
|
|
|
How did you make the button?
In Code behind or using the Web form, perhaps Javascript?
Is this a ASP.Net Object Button?
|
|
|
|
|
It is <asp:button>
Your help is much appreciated.
Thanks
Happy Coding!
|
|
|
|
|
Try to check your detailed button click-event in code behind if you have declare the button in The second button click-event that will happened ,or if declare your button in The page-load event That will happened tow if it does not work try to post your code
|
|
|
|
|
I got this solved. I have two update panels and so it behaves weird ... I arranged them properly in one update panel and works good. Thank you all
Your help is much appreciated.
Thanks
Happy Coding!
|
|
|
|
|
anyone can tell what happen when people use cookie less form authentication in any asp.net project. if we do not work with cookie then how could i persist the user login for next 7 days means once user login and so next 7 days user do not have to login until the user auth cookie expire ?
looking for discussion and guidance or anyone can redirect me to relevant article on this topic. thanks
tbhattacharjee
|
|
|
|
|
A cookieless session means that instead of the encrypted session id being passed through a cookie it will be passed in the querystring.
https://msdn.microsoft.com/en-us/library/aa479314.aspx[^]
7 days is a long time for a session to remain active but just set the value you want in web.config for session timeout.
If user closes browser then they're session will be lost since there is no cookie on the machine to send the next time they open the browser.
There are only 10 types of people in the world, those who understand binary and those who don't.
|
|
|
|
|
Message Closed
modified 25-Feb-15 9:28am.
|
|
|
|