Lusiphur 185 Practically a Posting Shark Team Colleague Featured Poster

Not so familiar with foxpro myself but I would assume that if you have the ability to read deleted and non-deleted table entries there must be a bool value somewhere that is associated with the deleted state?

In that case, would it not be possible just to use the equivalent of "WHERE !isDeleted" or whatever the equivalent format in that DB type would be?

From what I'm reading here you should be only receiving deleted rows if you've got "Set Deleted Off" command as part of your connection to the foxpro db in the first place.

Hope this helps :) Please remember to mark as solved once your issue is resolved.

Lusiphur 185 Practically a Posting Shark Team Colleague Featured Poster

Should be able to use this to do what you want...

string path;
   path = System.IO.Path.GetDirectoryName( 
      System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase );

Got that from this source. There's also a VB method there as well.

Hope this helps :) Please mark as solved once your issue is resolved.

0xCMD commented: Thanks I'll try the suggestion and reply back. +0
Lusiphur 185 Practically a Posting Shark Team Colleague Featured Poster

OTHER UPTIGHT MODERATORS who doesn't know proper grammar AKA ANCIENT DRAGON

Normally I don't like to feed these types of posts with a response but I just had to put in my 2 cents since you seem to feel that it's that important to split your rant into two separate caps-lock-challenged threads.

While I can understand that perhaps you felt offense at a statement made by one individual within this site... And I can also understand that you felt 'picked on' after you were hit with some moderator action for breaking posted rules of this site... I don't understand why you feel that any of the following applies:

  • The rest of us need to be made painfully aware of your feelings of persecution
  • The rest of us in any way care about the fact that you received moderator action in the first place
  • The rest of us feel any need to witness your abusive tirades against another member of this community
  • That you are in any way exempt from the rules that apply on a privately owned and operated forum because "people who read the rules ... don't have their own website and no money TO MAKE THEIR OWN RULES"
  • That anyone who uses 50%+ caps in their posts can claim any level of maturity, let alone a superiority over others

Having said all of that, you're definitely allowed your opinion and you've every right not to utilize services if you disagree with how they're run …

Lusiphur 185 Practically a Posting Shark Team Colleague Featured Poster

One thing to check (because I don't think that DESC is exclusionary to using DGVs) is that the table values in the database are what you expect them to be. For example, is the result 0 lines populated to the DGV or is it several lines with id's but no other content? If it's the latter you could be dealing with null values in the other columns that hadn't been anticipated by the design of this project.

There's literally no reason why changing the sort order of the select statement should be affecting whether or not data shows within the DGV. Alternately (though not preferred) you can use the following:

dataGridView1.Sort(dataGridView1.Columns["id"].ListSortDirection.Descending)

if you truly can't get the DESC to work in the select statement.

Hope this helps :) Please remember to mark as solved once the issue is resolved.

Lusiphur 185 Practically a Posting Shark Team Colleague Featured Poster

So to expand on the above example, to shrink by 2/3 but keep same container/display dimensions...

  1. Determine mid-point of existing rectangle ~ ((x2(right) - x1(left))/2) + x1 = xMid - ((150-25)/2)+25) = 87.5, ((y2(bottom) - y1(top))/2) + y1 = yMid = ((200-25)/2)+25) = 112.5
  2. Determine zoom ratio (2:3)
  3. Convert xLength (150 - 25) * 2:3 = 83.333
  4. Convert yLength (200 - 25) * 2:3 = 183.333
  5. Find new x positions 87.5 +- (83.333/2) = 45.833 (closest full pixel is 46) & 129.167 (closest full pixel is 129)
  6. Find new y positions 112.5 +- (350/2) = 20.833 (closest full pixel is 21) & 204.167 (closest full pixel is 204)

Completed new rect would be (129, 204, 46, 21).

Lusiphur 185 Practically a Posting Shark Team Colleague Featured Poster

Well my method works best with a consistant overall ratio change (ie: you double the display size therefor ratio = 2:1 or shrink to 2/3 size giving ratio of 2:3)

With an example of 2:1 (doubling) I would do the following

  1. Determine mid-point of existing rectangle ~ ((x2(right) - x1(left))/2) + x1 = xMid - ((150-25)/2)+25) = 87.5, ((y2(bottom) - y1(top))/2) + y1 = yMid = ((200-25)/2)+25) = 112.5
  2. Determine zoom ratio (2:1)
  3. Convert xLength (150 - 25) * 2:1 = 250
  4. Convert yLength (200 - 25) * 2:1 = 350
  5. Find new x positions (87.5 * 2:1) = 175 +- (250/2) = 50 & 300 (forgot to adjust mid-point for 2:1 ratio change as well, did it on the fly here)
  6. Find new y positions (112.5 * 2:1) = 225 +- (350/2) = 50 & 400

Hope that helps somewhat. In the end you end up with your original rectangle at (150, 200, 25, 25) your 2:1 rectangle (based on doubling display size as well which displaces the center mark to a new position in the process) at (300, 400, 50, 50). While it may seem the matter is as simple as doubling all the numbers the basic formula can be used to replicate the ratio change as well as insuring visual symetry in the center point of the shape.

In situations where you want to zoom the shape but not the container/display you can use all the steps above but omit the ratio …

Lusiphur 185 Practically a Posting Shark Team Colleague Featured Poster

Not saying that it's the reason why the specific sites you're referring to would do this but in some cases sites choose to use methods that bypass automation in their logins and authentications to prevent automated users (read: bots) from utilizing their sites. This can be common on some forums, form submission sites and the like. However, the more common method for bot elimination is captcha (probably spelt that wrong) images so *shrug*.

Lusiphur 185 Practically a Posting Shark Team Colleague Featured Poster

I would use:

using System.IO;

Coupled with a bit of research into how that works you should be set :twisted:

finito commented: ofc! +2
Lusiphur 185 Practically a Posting Shark Team Colleague Featured Poster

kibr987, please remember to mark threads solved once your issue has been resolved :) that way people don't see an unsolved thread and think it still needs to be looked into.

Lusiphur 185 Practically a Posting Shark Team Colleague Featured Poster

The .mdf file is the extension of the deattached database?

Yes, it is :) Again, read my previous post regarding the pros and cons of using a localized flat db vs a centralized db depending on intended user distribution.

Lusiphur 185 Practically a Posting Shark Team Colleague Featured Poster

To expand on this a bit your two options are:

  • Create a flat-file database that is portable within the application
  • Create a database connection string that points to the server/db location where your db will be hosted (for multi-user/multi-machine programs you will want a centralized database to share information vs a localized db that is unique to each install)

The way you have it now, because you developed it off a db on your local machine, it's only set up to connect to that DB and only if the program is installed/run from that machine.

Something else to consider, if it's using computername\\SQLEXPRESS as it's connection, odds are it's also using windows authentication and so, if you host it off a centralized DB server, you will likely want to ensure it's using either un/pw style authentication or that you know how to set up accounts and permissions for individual login rights (easiest and common is to use the sa account to log into the DB unless you have groups setup within the db to accomodate different read/write/access rules for different categories of users which is likely far more advanced than your project requires). If you do set your connection string to include un/pw login you'll want to make sure that the connection string details are secure . Generally I bury it within a separate class and call it like so:

blConn loadConn = new blConn();
string connStr = @loadConn.cString;

Where blConn is a class containing …

Lusiphur 185 Practically a Posting Shark Team Colleague Featured Poster

Yes, it's one table... but... it's DIFFERENT information being selected and DIFFERENT columns/content being displayed to the user.

Which is why I'm saying that since it's effectively 2 separate subsets of data, maybe you should use 2 separate dgv's :)

Lusiphur 185 Practically a Posting Shark Team Colleague Featured Poster

Ok, well... clearing the rows on the dataGridView isn't going to help you if you don't re-populate the dgv with new content afterward. But your question was how to clear the dgv and that's where dataGridView1.Rows.Clear() comes in :)

Lusiphur 185 Practically a Posting Shark Team Colleague Featured Poster

Dude... you're killing me here :twisted:

Try:

datagridview.Rows.Clear();
Lusiphur 185 Practically a Posting Shark Team Colleague Featured Poster

Basically, keep it simple...

SqlCommand cmd = new SqlCommand("select * from student where student_no='" + numericupdown1.value.ToString() + "'",con)

and

numericUpDown1.Value = Convert.ToDecimal(dt.Rows[0].Columns["Bookshelf"]);

When performing SELECT from DB convert your decimal value to string. When pulling from DB to your control convert from whatever type you're pulling from the DB (you said INT) to decimal.

Lusiphur 185 Practically a Posting Shark Team Colleague Featured Poster

And I can immediately see why.
Let's try this again :)

SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM Users", con);
da.Fill(ds);

if (ds.Tables[0].Rows.Count > 0)
{
    dataGridView1.DataSource = ds.Tables[0];
}

You need to do the condition check AFTER the dataSet is populated but BEFORE the dataGridView is populated.

The only concern here is, in the event that there is no information in the dataSet, the dataGridView is not populated at all so you may need to find some way to address that as it means that without a dataSource the dataGridView will also be unable to add to your table.

AngelicOne commented: good to have you! +1
Lusiphur 185 Practically a Posting Shark Team Colleague Featured Poster

Well again, what is the data type for numericUpDown1.Value?

Another thing I'm seeing here (and your way might work but I prefer to do it this way):

numericUpDown1.Value = dt.Rows[0].Columns["Bookshelf"].ToString();

However, if numericUpDown1.Value has datatype decimal then converting dt.Rows[0].Columns["Bookshelf"] to a string value and trying to pass it to a decimal container will fail.

My assumption will be that when it's pulled from the DB it's going to be presented as a decimal value anyway in which case you can drop the .ToString() from this part (keeping it in the SELECT statement) and if absolutely required can add a Convert.ToDecimal(dt.Rows[0].Columns["Bookshelf"]) to ensure it's registering as a decimal prior to trying to apply it to the numericUpDown1.Value variable.

Worst case scenario (ie: my brain hasn't tuned up yet for the day) use:

numericUpDown1.Value = Convert.ToDecimal(dt.Rows[0].Columns["Bookshelf"].ToString());
Lusiphur 185 Practically a Posting Shark Team Colleague Featured Poster

The error message you are getting actually kind-of tells you specifically what's wrong there... "non-invocable member 'sytem.net.mailmessage.to' cannot be used like a method" means that:

Message.To(0).ToString;

cannot be used in that way. The "To" component of Message cannot accept variables directly.

Were you perhaps going for

string sToAddress = "";
sToAddress = Message.To[0].ToString();

with special attention on the square brackets instead of rounded brackets.

Keep in mind, I haven't tested this snippet, but I made a couple of educated guesses based on what you had provided.

Hope this helps :) Please remember to mark as solved once the issue has been resolved.

Lusiphur 185 Practically a Posting Shark Team Colleague Featured Poster

AngelicOne Generally when it tells you that you cannot implicitly convert a variable to another type there's a simple solution :)

What cannot convert implicitly must be converted explicitly. What this means is... Rather than use something like

string varString1 = someInteger;

Which would be an implicit cast from integer to string you would use:

//Option 1
string varString1 = someInteger.ToString();
//Option 2
string varString1 = Convert.ToString(someInteger);

The first method works great for strings because virtually every data type has a .ToString() method. Many of the other possible conversions, however, do require the 2nd option :)

I'm not specifically seeing the variable conversion that's causing your issue based on the source code you provided so I can't give a specific example to match the error (I could just be missing it) but I hope this helps :)

Geekitygeek commented: well written +3
Lusiphur 185 Practically a Posting Shark Team Colleague Featured Poster

Dude, calm the rant and read the rules :)

One of the rules (which are accessible via a clearly visible link above the search bar on the upper right of the page) states "Keep It On The Site" and in defining that says "Do not manually post "fake" signatures in your posts. Instead, you may create a sitewide signature within the user control panel."

The immediately following rule states "Keep It Spam-Free" which is expanded to include "Do not spam, advertise, plug your website, or engage in any other type of self promotion."

Essentially, all the moderators did was to follow the posted guidelines in removing from your posts the components that violated not 1, but 2 of the posted forum rules. It happens from time to time, you learn from it and move on... ranting at the moderators isn't going to change the rules or how they're enforced any time soon :)

Lusiphur 185 Practically a Posting Shark Team Colleague Featured Poster

It is better to use the generic List type:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            List<string> MyList = new List<string>();
            MyList.Add("p001");
            MyList.Add("p002");
            MyList.Add("p003");
            for (int i = 0; i < MyList.Count; i++)
            {
                Console.WriteLine(MyList[i]);
            }
            MyList.Remove("p002");
            Console.WriteLine("#################### After removing:");
            for (int i = 0; i < MyList.Count; i++)
            {
                Console.WriteLine(MyList[i]);
            }
            Console.ReadKey();
        }
    }
}

Also known as a "Collection" and darn you for getting up earlier than me and mentioning it first :P

But yes, your best bet is what ddanbe said as it dynamically increases it's size as items are added to it and can have items removed from it, reducing it's size dynamically, without having to insert null values as placeholders to overwrite them.

Don't forget to mark the thread solved once your issue is resolved :)

ddanbe commented: You got to live in Belgium ! :) +7
Lusiphur 185 Practically a Posting Shark Team Colleague Featured Poster

I'm not sure if it's what you want to do per-se but have you tried (when they choose to cancel) using Application.Exit() instead of just closing the forms? I assume if they cancel login you don't want the application running any longer.

Edit: What Farooqaa said :P (I stepped away for a bit and forgot to reload the thread to see if other answers were here before I replied)
Edit 2: And now, as it's 4am here... :zzz: Don't forget to mark the thread as solved once you're done resolving your issue.

farooqaaa commented: :) +2
Lusiphur 185 Practically a Posting Shark Team Colleague Featured Poster

Basically (as ddanbe said) your planning step is the most important step, even more so than the actual coding.

You need to work out step by step what you want to accomplish out of your program and build from there.

If you have an input value with unknown numbers of inputs (ie: any number of possible students) then perhaps you need to plan for a dynamically driven input form that expands the number of input slots based on either a selected number of inputs (user types in number of ids they want to enter) or with an "add new student number" type control which would generate a new input row in your UI.

Perhaps you loop the inputs until an escape is reached (ie: click this button when you are finished entering student id's).

Pseudocode (to give my own definition of it which might be clearer for you) involves using regular English (or your native language if not English), Flowcharts or other means to illustrate the paths your programming will take and the decision points within those paths so that you can work out any logic issues in advance, prior to entering into the coding stage.

As an example of (plain English) pseudocode:

  1. Get number of student ids
  2. Set number of available student id input rows
  3. Prompt user to enter student ids and indicate when finished (finished button?)
  4. When finished button is pressed, loop through list to verify all information has been provided, if …
ddanbe commented: Nice! +7
Lusiphur 185 Practically a Posting Shark Team Colleague Featured Poster

Hmm... if you want the repeating waves at the bottom of the page always, you could try adding "background-position:bottom;" to the #BG id in your CSS file. This should push the background (tiling horizontally) to the bottom of the DIV, in which case your #BodyBG background-color should likely be #000 (black) to match the top of the wave tiles.

Edit: just a design note, you may want to trim a bit off the left or right of your wave tile to match the lines up a bit :)

Lusiphur 185 Practically a Posting Shark Team Colleague Featured Poster

So you got it working now? Which version did you use in the end? the version that utilizes the methods and private variables in the Calculator class? or the version that directly derives the answer from the Equals procedure?

Oh, and if it's solved, please remember to mark the thread as solved as well :P

tricket_7 commented: Help was thorough, and helped me to also understand what I was doing. +1
Lusiphur 185 Practically a Posting Shark Team Colleague Featured Poster

HA!!! I can't believe I didn't see this before...

You've got it working just fine... the only thing you're doing wrong is your div statements.

Change <div class="leftbox"> and <div class="rightbox"> to <div id="leftbox"> and <div id="rightbox"> and you should be golden. Oh, and ya, change the rightbox definition's float to right instead of left.

I did some testing of my own and with the following CSS:

#wrap {
	width: 1024px;
	margin: 0 auto;
}
#leftbox {
	width: 678px;
	float: left;
}
#rightbox {
	width: 346px;
	float: right;
}

and the following HTML

<body>
<div id="wrap">
    <div id="leftbox">
        Featured Content
    </div>
    <div id="rightbox">
        Recent Threads
    </div>
</div>
</body>

I get a 2-column effect as intended but if I used "<div class=" instead they appeared one on top of each other.

Hope this helps :) Please mark solved if your problem is resolved.

samw1 commented: Thank you!! It worked. Some many hours wasted for such all small thing. +0
Lusiphur 185 Practically a Posting Shark Team Colleague Featured Poster

This might help. Not entirely sure if it'll do what you need it to but it seems like it might.

Hope this helps :) Please mark solved if it resolves your issue.

Lusiphur 185 Practically a Posting Shark Team Colleague Featured Poster

Sandeep929;

Looking at the 2 posts you've made, both look as though you copy/pasted the questions off of your computer programming class homework.

Please provide details of the nature of the problem you are having, as well as code snippets from attempts you have made at solving the problem, so that people have an idea of how to help you.

If, on the other hand, you expect us to do your homework for you... Well, speaking personally, not gonna happen. :)

Lusiphur 185 Practically a Posting Shark Team Colleague Featured Poster

For more information on reputation check this (ancient) thread where it was discussed in great detail :)

When you get a reputation boost that shows "Even" and has a grey box it means the person who gave the rep was not capable of raising or lowering your rep score (usually very new members).

Only green (positive) and red (negative) boxes next to the reputation attempt reflect in a change to your reputation level. The amount they reflect is determined by that particular user's ability to change reputation which is in turn (at least partially) determined by THEIR reputation.

Hope this helps :) Please mark as resolved if it resolves your issue.

Edit: After looking at both threads you linked and checking the reputation giver's profile they are both showing as "Newbie Poster" and more importantly showing:
Power to Affect Someone Else's Reputation Positively: 0 points
Power to Affect Someone Else's Reputation Negatively: 0 points
Edit 2: Had to add this lol... Also a person can only give reputation up to 10 times in a day if I read it properly which is likely why the rep boost I just received didn't actually affect me.

jonsca commented: You've gotten to know the site quickly! +0
TrustyTony commented: I should be able to boost your rep by one! +0
Lusiphur 185 Practically a Posting Shark Team Colleague Featured Poster

The beauty of CSS is that a style/class can be applied repeatedly to different items. The additional beauty is you can define as many styles/classes as you want to.

That being said:

#button_a {
    display: block;
    background: url(rolloverimage.gif) top;
    width: 63px;
    height: 34px;
}

#button_a:hover {
    background: url(rolloverimage.gif) bottom;
    width: 63px;
    height: 34px;
}

#button_b {
    display: block;
    background: url(rolloverimage.gif) top;
    width: 63px;
    height: 34px;
}

#button_b:hover {
    background: url(rolloverimage.gif) bottom;
    width: 63px;
    height: 34px;
}

Can be utilized by simply assigning "class="button_a"" or "class="button_b"" as needed to assign different styles to different buttons.

Edit: or y'know take out the "_"'s and you should end up with a,b,etc button types, I may be reading the original wrong because it's way too warm here and my brain's melted :P

Hope this helps :) Please mark as solved if it resolves your issue.

Lusiphur 185 Practically a Posting Shark Team Colleague Featured Poster

I assume that what you are looking to do is put the phone number from the selected comboBox item into textBox1?

If so then you need to set up a SelectedIndexChanged event handler for the comboBox and in that event handler it should have an assignment of comboBox1.SelectedValue.ToString() to your textBox1.Text.

Something like this:

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
    {
        textBox1.Text = comboBox1.SelectedValue.ToString();
    }

Otherwise, from what you're doing it almost looks as though you're trying to put EVERY value of the phone column of the data source into your textbox and you're selecting the string "phone" instead of selecting the actual value component of anything.

Hope this helps :) Please mark the thread solved if this resolves your issue.

Lusiphur 185 Practically a Posting Shark Team Colleague Featured Poster

Well the articles outline the usage which gives an idea of the reason behind the usage but other than that I guess I'll pass and let someone with more in-depth coding theory knowledge give this one a go :)

Sorry I wasn't much help in this case.

Member 785339 commented: Thanks for Replying +0
Lusiphur 185 Practically a Posting Shark Team Colleague Featured Poster

Another resource to look at (if you haven't already) is at this page.

Shows the use of the InternetExplorer object class which has adjustable properties including height and width.

Lusiphur 185 Practically a Posting Shark Team Colleague Featured Poster

I believe that this post might give the right direction on how to proceed with what you're looking for.

It outlines the use of restricted vs unrestricted tokens in the UAC. Now, I don't believe XP uses UAC (User Account Control) as I think it's a Vista/7 thing but I would imagine that the process would be similar even under a different umbrella.

This post may get you closer as it indicates a method of impersonating Administrator in XP but appears to have some drawbacks (such as the user needing to know the administrator password, in which case why not just have them log in as administrator to begin with).

Unfortunately, I haven't been able to find much on running at administrator level in XP but I have found lots on setting permission tokens in Vista/7... Sorry.

Hope this helps anyway :) Mark as solved if it does.

kvprajapati commented: Words!!! +10
Lusiphur 185 Practically a Posting Shark Team Colleague Featured Poster

Hehe... nevermind... I found my solution! :P

function toLink() {
    var url_string = prompt("Enter fully formed URL here","http://yourURL.com");
    while (!url_string) {
        continue;
    }
    if (url_string != "http://yourURL.com") {
        var tb = document.getElementById("msgBody");
        if (document.selection) {
            str = document.selection.createRange().text
            document.selection.createRange().text = "[l " + url_string + "]" + str + "[/l]";
            return true;
        }
        else if (tb.selectionStart) {
            var startPos = tb.selectionStart;
            var endPos = tb.selectionEnd;
            var str = tb.value.substring(startPos, endPos);
            tb.value = tb.value.substring(0, startPos) + "[l " + url_string + "]" + str + "[/l]" + tb.value.substring(endPos, tb.value.length);
            return true;
        }
        else {
            return false;
        }
    }
    else {
        var tb = document.getElementById("msgBody");
        if (document.selection) {
            str = document.selection.createRange().text
            document.selection.createRange().text = "[l]" + str + "[/l]";
            return true;
        }
        else if (tb.selectionStart) {
            var startPos = tb.selectionStart;
            var endPos = tb.selectionEnd;
            var str = tb.value.substring(startPos, endPos);
            tb.value = tb.value.substring(0, startPos) + "[l]" + str + "[/l]" + tb.value.substring(endPos, tb.value.length);
            return true;
        }
        else {
            return false;
        }
    }
}
Ancient Dragon commented: Good work :) +31
Lusiphur 185 Practically a Posting Shark Team Colleague Featured Poster

Did you, at some point in the project, change the project's source directory at all?

Basically it's sounding to me like it's looking for your files at 'C:\users\lizane\desktop\project\peek-ture\peek-ture\bin\x86\debug\peek-ture.exe' but they're either not there at all or in a different location.

The 2nd part of the message indicates a possible solution by telling you to "please build the project and retry, or set the outputpath and assemblyname properties appropriately to point at the correct location for the target assembly."

If, in fact the source directory has been moved for the project then all you need to do is re-point the project configuration to the correct location and you'll be good. Otherwise performing a manual build may cause the appropriate files to re-populate in the directory VS is looking for them in.

Lusiphur 185 Practically a Posting Shark Team Colleague Featured Poster

Generally I try to keep my responses as positive and helpful as possible. While I'm not always able to give an actual solution I try to do what I can or I don't normally post at all.

However, in the past 24 hours of thread skimming I've come across approximately 75% of the posts I've looked at where no reference code is provided. While not every question requires code examples in order to be resolved, many would strongly benefit from them.

What would probably help here would be code snippets from the areas of your application in which the affected control is in play. By seeing how it is currently being manipulated perhaps one of the many skilled and experienced coders on this site will be able to spot a flaw or loophole and provide a solution for you.

Again, I apologize if this sounds harsh and I'm not 100% directing it at you... you just happened to be the one poster at the end of a long list of several who didn't provide any objective code reference to work with :P

kvprajapati commented: Great Response!!! +10
Lusiphur 185 Practically a Posting Shark Team Colleague Featured Poster

Nick,

Generally the installer for VS2010 will detect and upgrade all components as required in the conversion from 2005.

However...

If your local development machine is also running MS SQL Server 2005 and the install includes an upgrade to MS SQL Server 2008 you may run into some issues there. If MS SQL Server is actively running at the time of installation the install may fail and there is the slight possibility of damage to the MS SQL Server 2005 install.

If, on the other hand, your install does not include any change to MS SQL Server then you should have a relatively smooth upgrade even if you're installing the 2008 server management tools and such (which I believe are reverse-compatible with 2005 Server).

As for changes to your projects and code... The first time a project is opened within an upgraded environment (2005 project opened in 2010) it will prompt you to update the project.

If you are planning on working on the project in both versions do NOT do this as it will be unreadable in 2005 afterwards without some lengthy and annoying file tinkering.

I'm not sure about MS SourceSafe but I would personally think that if it was integrated into 2005 it would likewise be in 2010.

Hope this helps :)

Lusiphur 185 Practically a Posting Shark Team Colleague Featured Poster

Well for starters I believe you'll find hands down that managed code runs a higher overhead on system resources which is, in part, why it hasn't particularly 'taken off' in mainstream usage for software design* yet.

Coupled with the fact that (unless you force your memory management which defeats part of the purpose there) you have no control over exactly when a resource will be freed up it can cause some bulky memory loads in between disposals.

As for actual benchmarks, not really sure where to look per-se but I hope this helps put it in a bit better perspective.

Edit: * Let me qualify more specifically, C# (aka managed code) has become a widely used standard in ASP.Net based web applications but has not become a mainstream reality in desktop applications as of yet.

Lusiphur 185 Practically a Posting Shark Team Colleague Featured Poster

I can't help wondering if this is a similar issue to the one I was having with dynamically populated ListBox controls losing their databinds during postbacks.

I will admit, I only skimmed through your code and there is so much going on dynamically that it's hard to say. My thought is that when the radio buttons are dynamically loaded the first time around and then selected... and then the load process is repeated (on call of CallPageLoad()) it may be changing the values of the radioboxes or losing the selected values in the re-processing of the dynamic content.

Perhaps there is some way you can trigger your responses without re-loading the entire process such that the original data is preserved?

Again I could be way off-base here and feel free to completely ignore me lol :P

Lusiphur 185 Practically a Posting Shark Team Colleague Featured Poster

I was recently having the exact same problem with a listbox control on my site.

The problem, as it turns out, was that the information bindings were being constantly changed every time the page was loaded (postback or otherwise).

I believe that if you change it so that the actual databind process is accomplished within the vb equivalent of below, it might work out for you:

if (Page.IsPostBack == false)
{
    ...page's databind processes here...
}

For example on my site's journal view page my Page_Load segment looks like this:

protected void Page_Load(object sender, EventArgs e)
    {
        //Split query pos 1 = Post Number
        string getQuery = ClientQueryString; //obtain variables from passed link ?orig=#&resp=#
        string[] querySplit = getQuery.Split('=', '&');
        origNum = Convert.ToInt16(querySplit[1].ToString());
        listedPage.Text = Convert.ToString(origNum);
        if (Page.IsPostBack == false)
        {
            loadMessageList();
            loadRespList(origNum);
        }
        navButtonSetup();
        if (origNum != -1) //if passed replyID != -1 load passed ID
        {
            loadMessage(origNum);
        }
        else //if passed replyID == -1 load lowest ID
        {
            origNum = lowestPost;
            loadMessage(lowestPost);
            if (Page.IsPostBack == false)
            {
                loadRespList(lowestPost);
            }
            navButtonSetup();
        }
        if (listRespBox.Items.Count > 0)
        {
            listRespButton.Visible = true;
        }
    }

However if I did the loadRespList or loadMessageList segments outside of the if (Page.IsPostBack == false) constructs I would receive the same error you reported with your code.

I hope this helps! :D Mark as solved if it does.