|
Visual Studio shows escapes in the C# debugger watch window and tooltips. I think that's a stupid idea, but there you are: that's what it does.
If you output the string to the console (Console.WriteLine) you will see that the backslashes are not doubled. If you're having trouble attaching the database, please ask on the other forum (including all error messages) - this is not the problem.
|
|
|
|
|
Never, never apply Console.WriteLine on a suspicious variable.
You might find the cause of a problem...
|
|
|
|
|
Mark06 wrote: I've tried command.CommandText.Replace("\\",@"\");
but it didnt do anything to the commandtext value.
Of course not. You are replacing each single backslash with a single backslash.
Also, the Replace method doesn't change the string, it returns the new string, so you have to use the result of the method:
str = str.Replace("\\\\", "\\");
Still, the string literal that you showed doesn't contain any double backslashes, so that will not have any effect at all.
What has made you come to the conclusion that the database has any problems with double backslashes, and why do you think that your string contains any?
---
single minded; short sighted; long gone;
|
|
|
|
|
Hey all,
OK, I know how to get the hard drives installed on a system. Please I need to know how to retrieve the serial number of a hard disk. Can I use DriveInfo? Don,t think so.
Thanx a lot,
all d best.
|
|
|
|
|
No, you can't use DriveInfo. You'll probably have to use a p/invoke function. Check out this one.
Standards are great! Everybody should have one!
|
|
|
|
|
You can only get the drive's serial number (printed on the case) if the drive manufacturer provides a way to do this.
You can get the volume serial number, generated by Windows, using the GetVolumeInformation function. Here[^] is a P/Invoke declaration for that function.
Microsoft defines a volume like so:
"An area of storage on a hard disk. A volume is formatted by using a file system, such as FAT or NTFS, and has a drive letter assigned to it. You can view the contents of a volume by clicking its icon in Windows Explorer or in My Computer. A single hard disk can have multiple volumes, and volumes can also span multiple disks."
- from Windows XP's Help and Support Center.
Note that even this is not the full story, as a volume may not have a drive letter. Since Windows 2000, a volume can appear as a directory under another volume (if the first volume is formatted with NTFS) - this is referred to as a volume mount point.
|
|
|
|
|
|
Zeno, thanx a lot really appreciate your help.
Thanx a lot,
all d best.
|
|
|
|
|
|
i was understanding the diference between the
internal
and
internal protected
to understand the access limits.
for that i wrote the following example.
class abc
{
internal protected int f=0;
internal int h = 0;
}
class def: abc
{
void f1()
{
}
}
both f and h are accessible in the class def.
is there any access limits or u can say any point that constraints the access limits of internal and internal protected member function/data.
Sonia Gupta
Soniagupta1@yahoo.co.in
Yahoo messengerId-soniagupta1
Love is Friendship and Friendship is Love....
|
|
|
|
|
internal means that it is visible to any class in the same assembly. internal protected classes are visible to any class in the same assembly, or in a derived class (which may not be in the same assembly).
Deja View - the feeling that you've seen this post before.
|
|
|
|
|
IF U PLEASE EXPLAIN WITH ANY SMALL EXAMPLE PLEASE....
Sonia Gupta
Soniagupta1@yahoo.co.in
Yahoo messengerId-soniagupta1
Love is Friendship and Friendship is Love....
|
|
|
|
|
IF YOU WRITE BIGGER HE MIGHT
"More functions should disregard input values and just return 12. It would make life easier." - comment posted on WTF
|
|
|
|
|
Didn't you know I'm deaf? Could you shout up a bit?
Deja View - the feeling that you've seen this post before.
|
|
|
|
|
Sonia - suppose you have an assembly called Assembly1. This contains the following:
public class Class1
{
protected internal string MyVariable;
}
public class Class2
{
public void DoSomething()
{
Class1 class1 = new Class1();
class1.MyVariable = "Hello";
}
} Now, in a new Assembly (Assembly2) you have:
public class Class3 : Class1
{
public void Something2()
{
MyVariable = "Hello there";
}
}
public class Class4
{
public void Something3()
{
Class3 class3 = new Class3();
class3.MyVariable = "Hi there";
}
}
Deja View - the feeling that you've seen this post before.
|
|
|
|
|
I'm working with TreeViews. I notice that when you change Theme in Windows from Windows XP to Windows classic or reverse the TreeView does not Update, you has to restart your application. Anyone know how to fix this or how to work around it?
[modified] Forgot I am using CheckBoxes = true
-- modified at 9:59 Friday 27th July, 2007
|
|
|
|
|
Is there an Update or Refresh method anywheres?
"Real programmers just throw a bunch of 1s and 0s at the computer to see what sticks" - Pete O'Hanlon
|
|
|
|
|
Hello I have a Class A (cNOT) that is inhertied from Class B (acGenericGate)has another class C (CInput) I have developed as a member variable.
This works fine until I try to make this member an array of said class.
The constructor is then not called for the ClassC, and while the array is created, each element is undefined instead of an instance Class C.
What have I missed?
Thanks
Rich
class cInput : acGenericGate<br />
{<br />
private bool m_bState;<br />
}<br />
<br />
abstract class acLogicGate : acGenericGate<br />
{<br />
private cInput[] m_bInputs;<br />
<br />
public acLogicGate()<br />
{<br />
m_bInputs = new cInput[2];<br />
}<br />
}<br />
<br />
class cNOT : acLogicGate<br />
{<br />
}<br />
<br />
Thus the array m_bInputs is empty it does not contain instances of cInput.
|
|
|
|
|
In cInput, put the following
public cInput() : base() {} Do similar in cNOT to call your base constructor.
Deja View - the feeling that you've seen this post before.
|
|
|
|
|
Hello, thanks for the tip, however this has not solved the problem. Which was as I expected since my base class is abstaract and at present has no members in it to initialise.
In my previous version of this application this member variable, m_bInputs, was not an array and everything worked fine. The constructor for the class was called and the two member fields it contains initialised correctly. The problem is when I try to make it an array. The array is created but not initialised and remains undefined. I am using NET_1.0 as this is what I will be using at work.
So this worked...
abstract class acLogicGate : acGenericGate<br />
{<br />
private cInput m_bInputs;<br />
private cOutput m_bOutput;<br />
The constructor for cInput and cOutput are called when and instance of cNOT is created. An instance of both m_bInputs and m_bOutput was created and initialised.
However the following, where m_bInputs is made an array does not work - the constructor is not even called
abstract class acLogicGate : acGenericGate<br />
{<br />
private cInput[] m_bInputs;<br />
private cOutput m_bOutput;
The constructor for acLogicGate is...
public acLogicGate() : base()<br />
{<br />
Console.WriteLine("\n Default cLogicGate Cons");<br />
m_bInputs = new cInput[1];<br />
m_bOutput = new cOutput();<br />
}
And for cInput is.....(cINput is also derived from acGenericGate)
<br />
public cInput() : base()<br />
{<br />
Console.WriteLine("\n cInput Cons");<br />
m_bState = false;<br />
}
while the base class is at present simply....
<br />
abstract class acGenericGate<br />
{<br />
public virtual void m_AssignInput(acGenericGate Gate, cInput[] m_bInputs)<br />
{<br />
}<br />
}
Any more ideas?
Thanks, Rich
|
|
|
|
|
The reason the problem would not occur with standard member types int for example is that they will be constructed and assigned default values automatically, unlike an array.
|
|
|
|
|
the classes are not relevant, it is the array initialisation that you miss understand
When you create an array of objects, ie
cInput[] m_bInputs;
and then say
m_bInputs = new cInput[2];
you create an array, not a list of the objects
You need to call initialise after the new to call the default constructor.
What would be better tho is if you are using .NET 2.0 then use a list not an array, ie
List<cInput> inputs = new List<cInput>();
This way you will avoiding boxing ect ect
-- modified at 9:08 Friday 27th July, 2007
|
|
|
|
|
Please escape generics, else it wont show
|
|
|
|
|
But should each element of the array not be of type cInput?
For example if I was to make a integer array:
<br />
int[] IntArray;<br />
IntArray = new int[2];<br />
This would be OK. But while the following compiles and builds there is nothing in the array and so the call to the member function of cInput fails:
<br />
cInput[] bInputs;<br />
bInputs = new cInput[2];<br />
bInputs[0].m_SetState(true);<br />
I thought that bInputs would be a reference to the first element in the array, which happens to be an array of my user defined type, cInput.
Since I am not using .NET 1.0 is there another way around this...?
Cheers
Rich
|
|
|
|
|
I think you have missed my point!
An array in .NET is nothing like C++ or VB.
It is an Array object, a collection, NOT a series of memory locations initialised as a standard array.
I would suggest you do some more reading regarding collections, it is pretty important.
But to give you a head start, when you create an array here, you are actually creating a list of reference variables, and not that actual objects themselves, so, you will still need to call new on each location!
For example
<br />
cInput[] bInputs;<br />
bInputs = new cInput[2];<br />
<br />
for(int i = 0; i < bInputs.Length; i++)<br />
{<br />
bInputs[i] = new cInput();<br />
bInputs[i].m_SetState(true); <br />
}<br />
I would also suggest hwever, that if you are using .NET 2.0 or newer, look at and learn generics (again, look at the collections)
Paul.
|
|
|
|