|
sigh:My dataset has a column of filenames
I want to do a foreach on the filenames and see if they exist in a directory
if so I want to print the dataset row....HELP!!!
|
|
|
|
|
|
No matter how many times and ways you post the same question, you're not going to get the full answer until you at least attempt it yourself.
FWIW, look up the File class in the System.IO namespace and it has a static Exists method.
|
|
|
|
|
I've been dabbling with .NET remoting in the past few days and I'm completely new to it. I've successfully created a client application that accesses a marshaled object by a server application and updates it, therefore reflecting the change on the server side. So, I've been thinking about going bigger with my dabblings..
I'd like to create a simple application where a user can create an order of something, say hamburgers. When the user selects the # of hamburgers and enters their name, they can press a button to send the order. I want the server side to receive the order and store it in xml. So, I've been thinking about this and applying what I know of C# and .NET remoting.
What's the best way to get an order to the server without using large objects? Should I create a simple remotable object with an Add and Delete method that accepts an order? Then, should I create delegates in that class for Add and Delete so that my server application can listen for the Add and Delete delgates? Should I have a constructor for my remotable object that accepts a reference to my server's forms, methods, etc and forget about delegates?
Please remember that I'm fairly new to this... help is appreciated..
|
|
|
|
|
This morning I created a simple remotable object with a delegate and event using that delgate. On the server side where I created the object, I setup an eventhandler for the event I created and marshaled the object.
On the client side when I get a reference to the object using Activator.GetObject and I try creating an eventHandler for the same event, I get a security policy error. I was hoping that setting up an eventhandler on the object on both server and client sides that it would be a way that I could communicate back and forth between the server and client.
I know that this is probably a misguided attempt at client/server and server/client communication, but I'm new to this. Can anyone point me in the right direction?
|
|
|
|
|
I am working on a socket-based client application, and I need a facility to ensure that a given delegate will execute only on the main GUI thread.
I understand that derivatives of System.Windows.Forms.Control achieve this by implementing ISynchronizeInvoke, and outside threads can call Invoke or BeginInvoke/EndInvoke to run code on the thread which "owns" the control. I need similar functionality, but in a class that is clearly not a Control derivative.
In the code below, I would like to attach a notification to the end of the ReceiveCallback() method to inform the main thread that data is ready in the receive queue.
I see 3 ways in which this can be accomplished:
1) Override the main WndProc routine, and check MessagesPending() on each iteration through the message loop. I'm not extremely familiar with multithreading issues, but it seems that this would cause the queue to be locked most of the time, not to mention burning unneccesary cycles in the core program loop.
2) Post a system message and respond to it in the main WndProc loop. I've seen ways to respond to the message via an IMessageFilter object, but I have not been able to find a means of posting a custom message to the main window.
3) Implement a system like the controls use, involving the ISyncronizeInvoke interface. However, I am completely at a loss as to how one could achieve this functionality.
Any help is greatly appreciated. If I can work this out, I will most likely put together an article covering the topic and submit it to the code project.
Here's a sample of the class code:
<code>
public class CommunicationManager
{
public delegate void CMEventHandler();
public event CMEventHandler DataReceived;
private ManualResetEvent ReadyToStop = new ManualResetEvent(false);
private AutoResetEvent ReadyToSend = new AutoResetEvent(false);
private AutoResetEvent ReadyToRecv = new AutoResetEvent(false);
private Socket sock;
private Queue inQ, outQ;
public CommunicationManager() {}
public bool MessagesPending() {}
public string GetMessage() {}
public void SendMessage(string msg) {}
public void Connect(string IP, int Port) {}
public void Disconnect() {}
private void ReceiveThreadEntryPoint(object state)
{
WaitHandle[] handles = new WaitHandle[2];
handles[0] = ReadyToStop;
handles[1] = ReadyToRecv;
StateObject so = new StateObject();
while(true)
{
if (sock != null && sock.Connected)
{
so.Clear();
so.sock = sock;
sock.BeginReceive(so.buff, 0, StateObject.BUFFER_SIZE, 0, new AsyncCallback(ReceiveCallback), so);
}
if (WaitHandle.WaitAny(handles) == 0)
break;
}
}
private void SendThreadEntryPoint(object state)
{
while(true)
{
WaitHandle[] handles = new WaitHandle[2];
handles[0] = ReadyToStop;
handles[1] = ReadyToSend;
if( WaitHandle.WaitAny(handles) == 0 )
{
break;
}
if (sock != null && sock.Connected)
{
while(outQ.Count > 0)
{
StateObject so = new StateObject();
so.sock = sock;
byte[] buff = Encoding.ASCII.GetBytes((string)outQ.Dequeue());
sock.BeginSend(buff, 0, buff.Length, 0, new AsyncCallback(SendCallback), so);
}
}
}
}
private void ReceiveCallback(IAsyncResult ar)
{
StateObject so = (StateObject)ar.AsyncState;
Socket s = so.sock;
try
{
if (s == null || !s.Connected) return;
int read = s.EndReceive(ar);
if (read > 0)
{
string msg = Encoding.ASCII.GetString(so.buff, 0, read);
inQ.Enqueue(msg);
ReadyToRecv.Set();
}
}
catch {}
}
private void SendCallback(IAsyncResult ar)
{
StateObject so = (StateObject)ar.AsyncState;
Socket s = so.sock;
try
{
if (s == null || !s.Connected) return;
int sent = s.EndSend(ar);
}
catch {}
}
private class StateObject {}
}
</code>
-Bn. Wasteland
|
|
|
|
|
You don't need to do much to get your GUI to handle the threading issue. Just remember (as it seems you already know), never operate on your GUI from another thread.
That being said, I'd do the following:
1. Create a method in your GUI that is accessable from your thread.
2. Create a delegate that matches the signature of the method in step 1.
3. Use the GUI's ability to determine whether it needs invocation on its own thread within the method on the GUI.
4. Check out this 3 part article on MSDN
http://msdn.microsoft.com/library/en-us/dnforms/html/winforms06112002.asp[^]
private delegate void MyUIDelegate (string yourString, int yourInt);
protected void MyGUIMethod(string testString, int testInt)
{
if(this.InvokeRequired)
{
MyUIDelegate myDelegate = new MyUIDelegate (_taskPayne_MyGUIMethod);
this.Invoke(myDelegate , new object[]{ testString, testInt});
}
else
{
... your code here
}
}
|
|
|
|
|
I'm looking for a way to do the following:
class BaseClass
{
public enum Action
{
NO_ACTION
}
protected virtual bool ValidateAction(Action a)
{
return true;
}
}
class DerivedClass : BaseClass
{
public new enum Action
{
ACTION1,
ACTION2
}
protected override bool ValidateAction(Action a)
{
}
}
The above doesn't work because by declaring my enum Action as new in the derived class I've created a totally new type; thus the compiler complains that I shouldn't be trying to override ValidateAction in DerivedClass.
Basically I want to avoid having to use protected bool ValidateAction(int) as my function prototype, thereby avoiding having to cast my enum values to ints all the time to make the call to ValidateAction . Also, this would allow me to call ValidateAction from BaseClass and be sure that my virtual method in DerivedClass gets called.
Is there an obvious way of doing this that I am missing? Deriving from System.Enum to create an Action base class would do the trick, but I've read somewhere that this is poor practice. Any other suggestions?
|
|
|
|
|
By definition an enumeration is not subject to change. Here's a definition right off of MSDN.
"Constants provide a convenient way to set and refer to values that are not expected to change."
Your enum should define all actions that the base and all sub classes can perform. Your sub class doesn't have to handle all the actions, but it does need to use the same enumeration.
|
|
|
|
|
Does anyone know how to create a global mouse hook for the navigation buttons on a 5 button mouse?
I can do a global mouse hook but I only get left,right,middle and one of the XButtons. I need to catch XButton1 and XButton2 separately.
Anyone?
|
|
|
|
|
I have a Data Table from a Data Set that populates a DataGrid...Good but...
I need to test and iterate through each file name that is stored as a string in the last of three columns (c# Win App) from the Data Table, and see if it exists in a Directory. If not print text to a text file stating "xyz.pdf -- does not exist in directory".
|
|
|
|
|
you've listed a requirement. What's the question?
|
|
|
|
|
I don't know how to go about doing it in c# win app code
|
|
|
|
|
i have in my Employees table a filed that hold the start date of worker
and i nedd to get a message when the worker get 7 month of work
i try to do this :
while (reader.Read())
{
DateTime dt = (DateTime)(reader["Sdate"]);
//DateTime dt2 = new DateTime(dt.Year, dt.Month, dt.Day);
DateTime tomorrow = DateTime.Today.AddDays(360);
TimeSpan Diff = tomorrow - dt;
if (dt > tomorrow && dt < tomorrow)
this.listBox1.Items.Add("העובד " + reader["Fname"].ToString() + " ת.ז" + reader["ID"].ToString() + " נכנס ל 7 חודשי עבודה ");
and its dosent work where is ths problem ?
thanks alllooottt ....
|
|
|
|
|
For one thing, your if statement will never evaluate to true. You're checking the following:
if (dt > tomorrow && dt < tomorrow)
You can never have a date that is greater and less than another date at the same time. Plug in a test value:
if("1/2/2005" > "1/1/2005" && "1/2/2005" < "1/1/2005).... They can't both be true.
Also, if you're trying to check for 7 months why are you adding 360 days? Shouldn't you use
DateTime.Today.AddMonths(7)
|
|
|
|
|
so what do i need to do to make this work ?
|
|
|
|
|
You should really try debugging on your own. It's a good exercise in problem solving. *ALSO NOTE* I'm providing this for reference, without warranty of any kind since I'm totally unclear on your overall goal.
DateTime dt = (DateTime)(reader["Sdate"]);
DateTime dtSevenMonths = DateTime.Today.AddMonths(-7);
if (dt < dtSevenMonths)
{
this.listBox1.Items.Add(......);
}
|
|
|
|
|
i think u solved it ))
thankssss its semmes to work fine now ....
|
|
|
|
|
Hello:
From a class I want clean a place holder contained in a web form.
I’m using this code:
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
namespace WUC_CreDes
{
public class Class1
{
public static bool Hay_PostBack()
{
WUC_CreDes.WebForm1 parent1 = (WUC_CreDes.WebForm1) this.Page;
parent1.Example.Controls.Clear();
return false;
}
}
}
Where “Example” is my place holder within the web form.
When I compile my Project it’s sending me this error: “Keyword ‘this’ is not valid in a static property, a static method or as startup of static field”.
Does somebody has some idea about how can I attain it?
Thanks you in advance.
Greetings.
A.L.
El hombre que tiene amigos debe mostrarse amigo...
|
|
|
|
|
Finally I attained it thus:
In WebForm1 I did:
bool que = WUC_CreDes.Class1.Hay_PostBack(this);
And in my class I did:
public static bool Hay_PostBack(WUC_CreDes.WebForm1 parent1)
{
parent1.Example.Controls.Clear();
return false;
}
But now I need do same from a WUC, if I do:
bool que = WUC_CreDes.Class1.Hay_PostBack(this);
I understand I need replace 'this' with web form's name, here WebForm1.aspx
Somebody know how can I do to attain it?
El hombre que tiene amigos debe mostrarse amigo...
|
|
|
|
|
If I use: bool que = WUC_CreDes.Class1.Hay_PostBack(this.Page); it's sending me an error when I compile: Argument '1': it's not possible convert from 'System.Web.UI.Page' to 'WUC_CreDess.WebForm1'
May be I'm coding something wrongly but what?
El hombre que tiene amigos debe mostrarse amigo...
|
|
|
|
|
i already did in VB few month ago, and i want to do the same in C#. the function insert in DB the info i get in excel and works well.
' example in VB
public function myFunction(byval LastName as string, byval FirstName as string, optional Email as string="NA", optional PhoneNbr as long=0)
end function
// now how can i do the same in C#?
i can do with polymorphiste but if some function have 20 argument, i need 400 different functions to do the equivalent of vb?
the missing value work, but i need to put all the argument in object type.
Fardoche
|
|
|
|
|
If all ur optional parameters are the same type, u can use the 'params' keyword. U could use it even if they weren't the same type, but u would need to use an object array which u dont want.
Otherwise, the only solution is to overload ur 400 different functions, C# does not support optional parameters.
params[^]
|
|
|
|
|
i am not aware of c# and i have to create one project on c#
so any one can give me a small project of c# with database conectivity. so i can get the idea about my project.
if any one have a project for customizing a printing document then please give me that project
Dipesh Patel
|
|
|
|
|