|
Only after you write it..45 ACP - because shooting twice is just silly ----- "Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997 ----- "The staggering layers of obscenity in your statement make it a work of art on so many levels." - J. Jystad, 2001
|
|
|
|
|
Hi there!
I'm building a client/server-app with .Net remoting. I want the server to cache data for logged in users.
The code which wont function the way I want looks like this:
public sealed class Notifier
{
static Notifier instance = null;
static readonly object padlock = new object();
System.Timers.Timer timer = new System.Timers.Timer(10000);
static HashSet<UserInfo> users = new HashSet<UserInfo>();
Notifier()
{
SetUpTimer();
}
public static Notifier Instance
{
get
{
lock (padlock)
(
if (instance == null)
{
instance = new Notifier();
}
return instance;
}
}
}
}
public void ConnectUser(UserInfo user)
{
foreach (UserInfo info in users)
{
if ((info.UserName == user.UserName))
return;
}
users.Add(user);
}
void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
if (users.Count == 0)
return;
timer.Enabled = false;
timer.Enabled = true;
}
}
When adding a UserInfo with the ConnectUser() method the UserInfo object will be added to the users HashSet. However, when I try to access it in timer_elapsed the HashSet is empty, even though I've added 1000 UserData in the Connect method. I've tried make the HashSet staic, non-static but the problem remains.
ANy ideas?
Thomas
|
|
|
|
|
nordsluttning wrote: ANy ideas
Are you sure your ConnectUser() method is executing? Put a break point and see if the code steps into the method.Me, I'm dishonest. And a dishonest man you can always trust to be dishonest. Honestly. It's the honest ones you want to watch out for...
|
|
|
|
|
|
Yes it's executes. The users.Count says 1. The next time I try to access it timer_Elapsed it says 0.
This is strange...
|
|
|
|
|
Hi,
you haven't shown actual code have you?
1) what got shown wouldn't loose/clear/recreate users
2) but it won't compile either as the {} don't match following public static Notifier Instance
|
|
|
|
|
No I've left out some of the code. And as you say, the Public static Notifier Instance won't compile in the code I published, I missed something during cur/paste. However, as you say the users HashSet shouldn't loose it's contents in the code published and I've published all code manipulating the HashSet. A bit of a mystery.
|
|
|
|
|
Hi
I have a list box in my program that insert some string into it with C# code.
Sometimes length of string is more than width of list box, but horizontal scroll bar doesn't appear in list box. Do you know solution of my problem ?Best Regards,
Reza Shojaee
|
|
|
|
|
|
You could indeed put the ListBox into a panel with scroll bars on the panel, but unless you make the ListBox either arbitrarily wide, or monitor the length of your strings and modify the ListBox appropriately, you can still run into the problem the OP describes, as the panel will not create scroll bars based on the ListBox content. Try it - you will see what I mean!
The simplest solution is to set ListBox.HorizontalScrollBar = trueYou should never use standby on an elephant. It always crashes when you lift the ears. - Mark Wallace
C/C++ (I dont see a huge difference between them, and the 'benefits' of C++ are questionable, who needs inheritance when you have copy and paste) - fat_boy
|
|
|
|
|
The simplest solution is to set ListBox.HorizontalScrollBar = true You should never use standby on an elephant. It always crashes when you lift the ears. - Mark Wallace
C/C++ (I dont see a huge difference between them, and the 'benefits' of C++ are questionable, who needs inheritance when you have copy and paste) - fat_boy
|
|
|
|
|
For example I have tables: Countries and Goods. When user logging to the database (using my program on C#), him must be shown this tables with rows, which related only to him according to his privileges, for example only that country, where he lives and only that goods, which he sales.
How organize table of privileges in my database for that users?
I am sorry! I was not correct in my question, realy I need give to the user different capabilities on modification tables. Some users according to their privileges can modify and read data, some just read and so on. How organize table of privileges in my database for that users?modified on Sunday, March 14, 2010 11:17 AM
|
|
|
|
|
You would have to add a column to your tables that indicated what privilege level was required to view the information, and then when you perform the query, pass the user's privilege level in so that only the info available to that privilege is returned..45 ACP - because shooting twice is just silly ----- "Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997 ----- "The staggering layers of obscenity in your statement make it a work of art on so many levels." - J. Jystad, 2001
|
|
|
|
|
Hi, I have tabcontrol,in that by pressing second tab button im adding data to third Tab Listbox.But its not get added.
SecondTab function:
private void Callbutton_Click(object sender, RoutedEventArgs e)
{
tab.AddPresetmenu("CALL BUTTON");
}
ThirdTab Fucntion:
ObservableCollection<DataItem> items = new ObservableCollection<DataItem>();
public void AddPresetmenu(string pMenu)
{
items.Add(new DataItem(pMenu));
menubox.ItemsSource = items;
menubox.UpdateLayout();
}
Third Tab ListBox XAML:
<ListBox x:Name="menubox" ItemsSource='{Binding}' Margin="0,5,0,0" Background="Silver" BorderThickness="0"> <br />
<ListBox.ItemTemplate><DataTemplate><br />
TextBlock Foreground="Blue" FontWeight="Bold" Text="{Binding Path=Name}" TextWrapping="Wrap"<br />
VerticalAlignment="Center"/><br />
</DataTemplate><br />
</ListBox.ItemTemplate><br />
</ListBox>
Here i Couldnot paste XAML code prperly i dont know why?.Its get misaligned.
By checking 'menubox',it shows count=1 and selecteditems=1,and it shows Text also.But in exe t doesnot show anything.Anu
|
|
|
|
|
In future, post WPF related questions in the WPF forum - you might get more answers.Me, I'm dishonest. And a dishonest man you can always trust to be dishonest. Honestly. It's the honest ones you want to watch out for...
|
|
|
|
|
|
Abhinav S wrote: you might WILL DEFINITELY get more answers
Fixed that for ya....45 ACP - because shooting twice is just silly ----- "Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997 ----- "The staggering layers of obscenity in your statement make it a work of art on so many levels." - J. Jystad, 2001
|
|
|
|
|
Hi All,
I have this Crystal Reports Utility that is helping us convert reports from 9 to 11.5 and then up to CR2008. I know this sounds strange but it was the time line of when the utility was created in. Ok so in this application both CR 11.5 and CR 2008 objects (dlls) are being used. The app first calls 11.5 reportdocument object, does some work and attempts to close the com object with Marshall.Interop.Release(com object) and then proceeds to call a CR2008 object. When it does try to instantiate a CR2008 object I get a com error. It seems as if, one the GC is not disposing of 11.5 reportdocuement object yet and two there must be some common crystal reports dll being shared between the two versions. Does this sound like a fair assessment of the situation? Outside of shutting down the app and running each procedure separately which just confirms the dll conflict. How else can I confirm that this is happening?
DotNetMan
|
|
|
|
|
Anybody have any thoughts on this? Please
DotNetMan
|
|
|
|
|
I have an application I want to modify to navigate to a particular web site under specific conditions in order to trigger an action by the web site. I have to authenticate to the web site, which is easy to do in the URL. However, the browser first pops up with a message box say something to the effect of "You're about to login to the ....". The response options are "yes" and "cancel". Is there a way that I can intercept the message box via the program to have it respond "yes" every time? Additionally is there a way to detect if the message box has even been generated? I'm not a programmer but I play one at the office
|
|
|
|
|
Well, there are several issues here.
When you say "web browser", do you mean the WebBrowser control, or an external web browser, like IE, or FireFox?
If we're talking about WebBrowser control, then yes, you can probably manage that with a little research and work. If you're talking about an external browser, that's a whole other kettle of fish. The user could be using ANY of the dozen or so available web browsers, each of which still have several versions in significant use. This means you'd have to use Spy++ to discover the window handle of the browser's meassage box window *for each of the supported versions*, and then watch for each of those windows to be created, and respond accordingly.
Good luck with that..45 ACP - because shooting twice is just silly ----- "Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997 ----- "The staggering layers of obscenity in your statement make it a work of art on so many levels." - J. Jystad, 2001
|
|
|
|
|
Mea culpa. I thought I'd left no space between "Web" and "Browser" in the subject but I guess old typing habits kicked in unnoticed.
Yes, it's the WebBrowser control. The functionality I'm looking at would work fine if I were to log into the site when the monitoring program was initiated. But I need to make it such that I can invoke it when the server starts.I'm not a programmer but I play one at the office
|
|
|
|
|
Ahhh... that should make it easier, then.
Maybe there's something usable in the response that comes back from the web site when you post the authentication url to the WebClient object.
It will come back as HTML, so you'll have to parse it, but before you go through the pa5rsing hassle, you should inspect the response in the debugger..45 ACP - because shooting twice is just silly ----- "Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997 ----- "The staggering layers of obscenity in your statement make it a work of art on so many levels." - J. Jystad, 2001
|
|
|
|
|
Hi,
I am using SQL Server Compact 3.5 for my database.
I am trying to update the data in the database table, dataset and the gridview by looping through each of the datagridview row by doing the following:
for(int i = 0; i<AnimalsDataGridView.Rows.Count; i++)
{
try
{
if (File.Exists(AnimalsDataGridView.Rows[i].Cells[4].Value.ToString()))
{
String currentPath = AnimalsDataGridView.Rows[i].Cells[4].Value.ToString();
Image img = Image.FromFile(currentPath);
Image thumbnail = SetThumbnail(img, 200, 200);
byte[] imageInfo = ImageToByteArray(thumbnail);
Guid guid = getGuid(thumbnail);
this.ZooTableAdapter.Update(guid, imageTitle, imageInfo, currentPath, guid);
this.ZooTableAdapter.Fill(ZooDataSet.Animals);
}
}
catch (Exception e)
{
Console.WriteLine(e.Message.ToString());
}
}
The error occurs on the the following line:
if (File.Exists(AnimalsDataGridView.Rows[i].Cells[4].Value.ToString()))
This is the error:
NullReference Exception was unhandled
Object reference not set to an instance of an object.
Is it because it is trying to update an empty row i.e the blank row?
The Update query looks like this:
UPDATE [Animals] SET [Id] = @p1, [Title] = @p2, [Thumbnail] = @p3, [FullPath] = @p4 WHERE (([Id] = @p5))
If somebody could assist me assist me with this problem, i would greatly appreciate the help.
Thanks in advance,modified on Friday, March 12, 2010 7:42 PM
|
|
|
|
|
Eagle32 wrote: //get the filePath String currentPath = picturesDataGridView.Rows[i].Cells[4].Value.ToString();
Yep that is it. The cell has no value => exception.
I wolud force something like "Invalid Bitmap" in the DB. So if there is no
file specified it(the program) will automatically put "Invalid Bitmap" and load/show a
red X or something kind of image. To check for null is expensive if you have many rows.
|
|
|
|
|
Hi,
I have already enabled the feature to show an invalid bitmap. The last row in the gridview does show an invalid bitmap.
I am just checking if i can have access to the the actual filepath of the animal image.
Any advice?
Thanks,
|
|
|
|
|
well use a try ... cath.
Even the File.Exists(...) will throw an exception if the current user
doesn't have enough privileges.
[Added]
but in your initial post you said:
The error occurs on the the following line:
if (File.Exists(AnimalsDataGridView.Rows[i].Cells[4].Value.ToString()))
This is the error:
"NullReference Exception was unhandled.
Object reference not set to an instance of an object."
This has nothing to do with the access to the file.
The null exception/stuff comes from your
AnimalsDataGridView.Rows[i].Cells[4].Value.ToString()
[/Added]
|
|
|
|