|
Hi,
How can i send a FILE with HttpWebRequest
I opened a StreamWriter with GetRequestStream()
But i have no ideia how to send a file :\ because in the page have a FileField ;\
Thanks.
|
|
|
|
|
Take a look at RFC 1867[^] which describes file uploads using HTTP.
For example, if you only need to upload a single plain text file, you cn set the HttpWebRequest.ContentType to "multipart/form-data; boundary=ABC123". You then get the request stream using HttpWebRequest.GetRequestStream and, to make things easier, pass that to a StreamWriter with whatever Encoding is appropriate (should be the same as the file encoding you're uploading, though multiple parts can have different encodings that would go into the "Content-type" header as "charset". You would write to the request stream writer like so:
--ABC123
Content-type: application/x-www-form-urlencoded
param1=value1¶m2=value2
--ABC123
Content-disposition: form-data; name="FileField"
Content-type: text/plain
This content is from a text document.
--ABC123-- Notice the intentional line breaks and how the last line ends with -- (the end of the MIME boundary).
Learning this is crucial to understanding how to HTTP and MIME works, and the RFC is actually quite easy to read (compared to many others I've read).
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
I've learned how to connect, attach and detach my msde tables and databases.
Now I need to be able to make a call to sp_helpdb and get the return values from a C# applicaiton.
Can someone give me some help please?
Thanks,
cb
|
|
|
|
|
|
|
I think his article is good for creating wrappers for stored procedures that have been created for a given db.
But my question is specifically about sp_helpdb.
How would you construct c# code to execute this sp and get it's returned value(s)????
cb
|
|
|
|
|
The same as you do for any stored procedure: create a SqlCommand and fill it's Parameters collection property with parameters using the same names as the parameters defined by the stored procedure, plus one parameter with a direction of ParameterDirection.ReturnValue :
SqlCommand cmd = connection.CreateCommand();
cmd.CommandText = "sp_helpdb";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@dbname", SqlDbType.NVarChar, 128).Value = "master";
SqlParameter retVal = new SqlParameter("@RETURN_VALUE", SqlDbType.NVarChar,
128, ParameterDirection.ReturnValue, false, 0, 0, null,
DataRowVersion.Current, null);
cmd.Parameters.Add(retVal);
try
{
connection.Open();
cmd.ExecuteNonQuery();
}
finally
{
connection.Close();
}
Console.WriteLine(retVal.Value);
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
I entered the code as you suggested and it works returning a '0'.
My questions is how do I 'get' the values such as the name/path of the db and log files?
Thank you,
c
|
|
|
|
|
Sorry, I was thinking of a different stored proc. Handle the SqlConnection.InfoMessage event. This gets you the text that is printed using the PRINT statement in SQL (among other things). This is what sp_helpdb uses to print the information about whatever database name you passed as a parameter.
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
Hi
I have a ShowModalDialog window, which pops up on clicking on the button,
The modal dialog windo contains datagrid,
Now i have a problem...
The datagrid will bind at the page load time,
But when paging event happens the grid is not binding (Paging is working fine without modal dialog and code is correct) And I am using
<base target="_self" /> for the modal dialog window.
But Still I am in confusion why the paging event is not firing properly...
Please send me if u any suggestions for this.
|
|
|
|
|
You should post this question in the ASP.NET forum.
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
|
I'm writing a program where i need 4 different random numbers. i'm using one Random, called "gen" and using gen.Next(1,52) so my number falls in between 0 and 53. (using 4 different Randoms only makes my problem worse below)
however, frequently, i get 2 or more of the variables to be equal, which i dont want. i know i can use if statements and switch statements, but it would be too long:
if (i == j) ...
if (i == k) ...
if (i == l) ...
if (j == i) ...
if (j == k) ...
...
and then i would have to use a loop to make sure those weren't the same...
what can i do?
|
|
|
|
|
Insert them into a set until you have four values ? Does C# have sets ? Surely it does....
Christian
I have drunk the cool-aid and found it wan and bitter. - Chris Maunder
|
|
|
|
|
i dont know enough to be sure if it has sets, much less what sets are...
got any explanations or articles?
|
|
|
|
|
Is this your homework ? You seem sufficiently beginnerish to make me suspect that.
Anyhow, a set is a collection in which no item can appear more than once. A quick search of the Collections namespace has me thinking that there is no support for sets built into C#, how utterly gay.
Christian
I have drunk the cool-aid and found it wan and bitter. - Chris Maunder
|
|
|
|
|
lol, no, im not in school right now...
im pretty new to programming... sorry about the ignorance. im making a blackjack program, and i've recently gotten in to C#. started out on java a few years back, but gave up... now im back with C#...
|
|
|
|
|
Hmmm... Ended up beeing more code than I thought...
using System.Collections;
public class RandomCollection
{
private Random rnd = new Random();
public int[] RandomSample(int count, int low, int high)
{
ArrayList rnds = new ArrayList();
for(int i = 0; i < count; i++)
{
int t = rnd.Next(low, high - i);
foreach(int r in rnds)
{
if(t >= r) t++;
}
rnds.Add(t);
}
rnds.Sort();
return (int[])rnds.ToArray(typeof(int));
}
}
[Modified:]The rnds.Sort(); statement is NOT optional as previously stated...[/]
Have a look at my latest article about Object Prevalence with Bamboo Prevalence.
|
|
|
|
|
if its not difficult, could you explain this to me line-by-line so i could integrate it into my program?
if you cant, dont worry about it...
|
|
|
|
|
1: using System.Collections;
2: public class RandomCollection
3: {
4: private Random rnd = new Random();
5: public int[] RandomSample(int count, int low, int high)
6: {
7: ArrayList rnds = new ArrayList();
8: for(int i = 0; i < count; i++)
9: {
10: int t = rnd.Next(low, high - i);
11: foreach(int r in rnds)
12: {
13: if(t >= r) t++;
14: }
15: rnds.Add(t);
16: }
17: rnds.Sort();
18: return (int[])rnds.ToArray(typeof(int));
19: }
20: }
The card deck is represented as the numbers 1 through 52.
- First you pick a card from the 52 cards available. In line 11, i is 0, so the statement executed does something like int t = rnd.Next(1, 52); . Line 13 isn't executed, since the rnds ArrayList is still is empty.
t represents the first card.
- Second you pick a card from the 51 cards left. Since i is 1, line 11 will dosomething like int t = rnd.Next(1, 51); .
If t is equal to or higher than the first card's number; Add 1. (So that t is in the range of 1 through 52, except for the first card's number.)
- Third you pick a card from the 50 cards left...
If t is equal to or higher than the first card's number; Add 1. (So that t is in the range of 1 through 51, except for the first cards number.)
If t is equal to or higher than the second card's number; Add another 1. (So that t is in the range of 1 through 52, except for the first to cards' number.)
- Fourth you pick a card from the 49 ones left in the deck...
If t is equal to or higher than the first card's number; Add 1. (So that t is in the range of 1 through 50, except for the first cards number.)
If t is equal to or higher than the second card's number; Add another 1. (So that t is in the range of 1 through 51, except for the first to cards' number.)
If t is equal to or higher than the second cards number; Add yet another 1. (So that t is in the range of 1 through 52, except for the first three cards' number.)
There you have it...
NB: The rnds.Sort(); statement in line 17 is NOT optional as previously stated...
Have a look at my latest article about Object Prevalence with Bamboo Prevalence.
|
|
|
|
|
thanks a lot!
what is the purpose of rnds.Sort()?
why is it not optional?
|
|
|
|
|
The algorithm will in some cases fail, if the numbers aren't sorted lowest to highest.
Example: If you allready picked 5 and 4 (in that order) and now you're picking 4 again. First check finds that 4 (latest pick) is less than 5 (first pick), so latest pick isn't increased.
The second check will compare 4 (from the latest pick) with 4 (from the second pick) and decide it should increase the latest pick. The latest pick is now 5, and card number 5 can't be picked twice.
When the numbers are sorted, the last pick will increase to 5 on the first comparison and to 6 on the second. Now no cards are beeing picked twice.
Have a look at my latest article about Object Prevalence with Bamboo Prevalence.
|
|
|
|
|
Have you tried using Rand.NextDouble() and doing the multiplication yourself?? That always got new numbers for me. For numbers 1-52 (cards im assuming) do (int)(Rand.NextDouble*52)+1. It seems to give me all different numbers.
|
|
|
|
|
is there a chance it COULD return two or more of the same?
yes, its a blackjack game, and i want to make sure that on the small chance it could happen it would...
thanks.
|
|
|
|
|
Yeah random is random. If it gets 2 or more numbers that end up multiplying out to be together then they will be the same.
|
|
|
|