|
I want to display that data from the databse, you can not guide more detailed, the above example we did not understand anything.
I want to display like below:
Date: 21/06/2009----------------------------------------------------------------
name1
name1
name2
Date: 22/06/2009----------------------------------------------------------------
name1
name2
Date: 23/06/2009---------------------------------------------------------------
name3
Thanks
|
|
|
|
|
Hi
I have a WinForm with App.Config file.
There is a <connectionstring> inside the App.Config for MySql server like this:
Server=xxx.xxx.xxx.xxx;Database=xxx;UID=xxx;password=xxx;
Is there any way to extract server value to txtServer, database value to txtDatabase, UID to txtUser and password to txtPassword?
|
|
|
|
|
Not with the built-in tools, but you could write something -- perhaps with a Regular Expression -- or put each in a separate element.
|
|
|
|
|
If it is in the connection strings section you can do ConfigurationManager.ConnectionsStrings[0].Name etc.
There are only 10 types of people in the world, those who understand binary and those who don't.
|
|
|
|
|
|
Use two splits:
- string[] pieces=connectionString.Split(';');
- each "piece" is a key-value-pair separated by an "=":
string[] pair=piece.Split('=');
|
|
|
|
|
Hi All,
let's suppose
class A
{
int iA1{ get; set; }
int iA2{ get; set; }
}
class B
{
int iB1{ get; set; }
int iB2{ get; set; }
}
class C
{
int iC1{ get; set; }
int iC2{ get; set; }
}
Now i want make type ABC1 for List<<ABC1> and this ABC1 contain iA1,iB1,iC1 and iC2.
But bellow code is not working...plz suggest me, i just want List.
public interface IABC1
{
A a { get; set; }
B b { get; set; }
C c { get; set; }
}
public class ABC1:IABC1
{
#region IABC1 Members
....
...
}
Thanks,
|
|
|
|
|
OK i find it ...just make the public.
class A
{
public int iA1{ get; set; }
public int iA2{ get; set; }
}
Is it better way for multiple inheritance?
Thanks,
|
|
|
|
|
zeeShan anSari wrote: Is it better way for multiple inheritance?
Well, it isn't multiple inheritance, but it may suit your needs better.
And a shameless plug: Implanting Common Code in Unrelated Classes[^]
modified 12-Apr-12 12:40pm.
|
|
|
|
|
C#/.Net doesn't have multiple inheritance. It has multiple implementation (i.e. a class can implement multiple interfaces), so if the things you want to 'inherit' are simple enough, you can implement an interface and re-implement the methods), or alternatively you can switch from 'multiple is-a' (inheritance, which can't be done) to 'multiple has-a' (composition), which is essentially what you've done here.
You can fake multiple inheritance quite well thus:
class Multi {
private A a;
private B b;
Multi(string argForA, int argForB){
a = new A(argForA);
b = new B(argForB);
}
public static implicit operator A(Multi m) { return m.a; }
public static implicit operator B(Multi m) { return m.b; }
}
You can use that class as if it were an A or a B in variable assignments, foreach constructs and anywhere where an implicit cast gets used. However, you can't use a reverse cast (i.e. (Multi)(A)m won't work), the reference you get from a cast isn't actually the same object you started with, and putting it in collections would therefore be dodgy.
I don't really recommend you do that, though.
|
|
|
|
|
I thought about this some more and you can make the fakery even better, as long as you can actually inherit from A and B (which is a requirement for multiple inheritance when it's supported, obviously):
class Multi {
private A a;
private B b;
Multi(string argForA, int argForB){
a = new HostedA(this, argForA);
b = new HostedB(this, argForB);
}
public static implicit operator A(Multi m) { return m.a; }
public static implicit operator B(Multi m) { return m.b; }
public static implicit operator Multi(A a) { return ((HostedA)a).host; }
public static implicit operator Multi(B b) { return ((HostedB)b).host; }
private class HostedA : A {
internal Multi host;
internal HostedA(Multi host, string argsForA) : base(argsForA) {
this.host = host;
}
}
private class HostedB : B {
internal Multi host;
internal HostedB(Multi host, int argsForB) : base(argsForB) {
this.host = host;
}
}
}
Those cast-back operators will fail if you give it the wrong sort of A or B (i.e. one that isn't a cast-out of a Multi), but that's correct (though the exception message might not be quite right). You can override behaviour 'inherited' from A and B in HostedA and HostedB, and as inner classes they have access to their host's private state and methods.
If you want Multi itself to be virtual and inheritable, you can virtualise the creation of the instances of A and B and make the hosted classes visible for inheritance:
class Multi {
private A a;
private B b;
Multi(string argForA, int argForB){
a = ConstructA();
b = ConstructB();
}
protected virtual HostedA ConstructA(string argForA) { return new HostedA(this, argForA); }
protected virtual HostedB ConstructB(int argForB) { return new HostedB(this, argForB); }
public static implicit operator A(Multi m) { return m.a; }
public static implicit operator B(Multi m) { return m.b; }
public static implicit operator Multi(A a) { return ((HostedA)a).Host; }
public static implicit operator Multi(B b) { return ((HostedB)b).Host; }
protected class HostedA : A {
public Multi Host { get; private set; }
public HostedA(Multi host, string argsForA) : base(argsForA) {
this.Host = host;
}
}
protected class HostedB : B {
public Multi Host { get; private set; }
public HostedB(Multi host, int argsForB) : base(argsForB) {
this.Host = host;
}
}
}
To override some of Multi's 'A' behaviour, create a new inner subclass and override the construction method:
class Subclass : Multi {
protected override Multi.HostedA ConstructA(string argForA) { return new HostedA(argForA); }
protected class HostedA : Multi.HostedA {
public HostedA(Multi host, string argsForA) : base(host, argsForA) {}
public override string ToString() { "subclassed A"; }
}
}
... and now ((A)new Subclass("A", 12)).ToString() -> "subclassed A". Casting back with subclassing is a bit ugly though, you can't do (Subclass)(A)mySubclass, instead having to do (Subclass)(Multi)(A)mySubclass.
This retains the disadvantage over real multiple inheritance that a cast from Multi to A gives you a different object (unlike a cast from Button to Control or from an object to an implemented interface). However, the A which is returned maintains a reference to the Multi and protects it from garbage collection, and it should now be castable back (i.e. (Multi)(A)myMulti == (Multi)(B)myMulti == myMulti). And, of course, to use any A methods on a Multi instance you must do ((A)myMulti).MethodOnA(), because the compiler won't know to cast and the methods aren't actually defined on Multi (and although you could create forwarding shims, that makes your code ugly).
However, an approach where you inherit normally from one class and fake-inherit like this from another:
class Multi : A {
private B b;
Multi(string argForA, int argForB) : base(argForA) {
b = ConstructB();
}
protected virtual HostedB ConstructB(int argForB) { return new HostedB(this, argForB); }
public static implicit operator B(Multi m) { return m.b; }
public static implicit operator Multi(B b) { return ((HostedB)b).Host; }
protected class HostedB : B {
public Multi Host { get; private set; }
public HostedB(Multi host, int argsForB) : base(argsForB) {
this.Host = host;
}
}
}
... could make sense if B is a decorator class and A is the main functionality which you want to be able to use normally.
|
|
|
|
|
As noted multiple inheritance isn't possible but you can chain your inheritance
class A
{
int iA1{ get; set; }
int iA2{ get; set; }
}
class B :A
{
int iB1{ get; set; }
int iB2{ get; set; }
}
class C :B
{
int iC1{ get; set; }
int iC2{ get; set; }
}
C c = new C();
c.iA1 = 0;
c.iA2 = 1;
c.iB1 = 2;
c.iB2 = 3;
...
"You get that on the big jobs."
|
|
|
|
|
Hi
I have a desktop C# application that is basically built on Tab control. I have 8 tabs and i need to have different domains to be selected(e.g Admin, clerk, bursar, secretary) on my login where when a user under a specific domain clicks on a certain tab, an event is generated that prevents him from viewing the content of that tab. I was thinking of it this way...
private void Form1_Load(object sender, EventArgs e)
{
if ((Thread.CurrentPrincipal.IsInRole("admin")))
{
tabPage4.Hide();
}
else
{
MessageBox.Show("You must be a member of the Manager or Administrator's roles to view username and password information", "Insufficient Permissions",
MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
}
But now instead of
CurrentPrincipal.IsInRole put something that will read the domain name. Something of that sort.
I'll appreciate any help
Thank you
|
|
|
|
|
Why do you make it so complicated, I would manage the visibility based on the users group. If they don't have permission then don't show the tab or disable the tab.
Never underestimate the power of human stupidity
RAH
|
|
|
|
|
Good Idea.. Thank you, but where do i write the conditional statement?
Just a little illustration please
|
|
|
|
|
In the form load method you check the current users credentials and set the visibiility/disable the tabs according to the users creds.
Never underestimate the power of human stupidity
RAH
|
|
|
|
|
That would be a security-leak; one can re-enable the tab with ManagedSpy[^].
Bastard Programmer from Hell
|
|
|
|
|
If any of my users are capable of using such a tool and are caught circumventing an applications security I will get them fired. I write corporate software not highly secure commercial applications.
It is assumed that if you work for the organisation you abide by their ethics and rules, you don't try and hack the solutions we supply to make your life simpler!
Never underestimate the power of human stupidity
RAH
|
|
|
|
|
Mycroft Holmes wrote: I write corporate software not highly secure commercial applications.
I was under the assumption that those are the same; If you trust your users, then why go through the bother of hiding it at all?
Getting fired might not be that much of a punishment, if someone is being paid by the competition to destroy the database. ..and it might be "hard" to catch them circumventing security.
Call me paranoid.
Bastard Programmer from Hell
|
|
|
|
|
Eddy Vluggen wrote: I was under the assumption that those are the same;
No they are vastly different, inside the firewall you have higher level of control over what the app does, in the wild the requirements will be dramatically wider and there is less tolerance of errors (not necessarily bugs).
As to trusting the users, bloody hell no, but they do know hacking the systems carry a load of retribution, sacking being the least. If a user acquires a specialist peice of software who primary use is to circumvent the internal security of an app they are way outside the bounds of acceptable activity. They would need to be paid very well with a long term prospect of collecting.
Never underestimate the power of human stupidity
RAH
|
|
|
|
|
Mycroft Holmes wrote: No they are vastly different, inside the firewall you have higher level of control
Someone might temporarily disable the firewall to diagnose connection-problems. Or buy a PC with a rootkit.
Mycroft Holmes wrote: If a user acquires a specialist peice of software who primary use is to circumvent the internal security of an app they are way outside the bounds of acceptable activity. They would need to be paid very well with a long term prospect of collecting.
Provided you know which user it was, and that's assuming it's an employee.
Bastard Programmer from Hell
|
|
|
|
|
We are using Spring Frame work in C#.
We have a stored proc calling another stored proc.
In Web Config there is definition of the property of the first SP. In its definition we have the property of the SP called inside this first SP.
How to define the second SP in web config?
When I put the property as in second block I am getting error.
Basically we have Class A having a property of Interface and a class implements the interface which the Stored Proc A. In Stored Proc A there is one more property that is for another Sp call. Need to know how to define web config for it.
<object id ="CustDetailsForTaxIdService" type="CustDetailsForTaxIdService, Service" >
<property name="ControlPersonDao" ref="ControlPersonStoredProcedure" />
<object id="ControlPersonStoredProcedure" type="Spring.Aop.Framework.ProxyFactoryObject" >
<property name="ControlPersonItemDao" ref="ControlPersonItemStoredProcedure" />
Thanks any help will be appreciated.
|
|
|
|
|
Since I've done all my learning the hard way - buying lots of books and surfing CodeProject, most of the examples I see are short ones, meant to illustrate a concept. The usual routine is to fire up VS, create a new project, and do all the coding on one form. But that seems cluttered to me for a real program.
I'm revisiting a project I started a while back, and it uses a main form for user interaction, but does a lot of background stuff that just clutters up the form code. For instance, one routine strips all the quotation marks out of a string so that I can later use the Split function to break up the fields in the string. It was convenient to debug it on the main form, but now that it works, it's just making the form code hard to follow. I don't have enough stuff to justify a library, but I'm wondering where it would be good to shove such things. Should I make a new class that contains all the helper functions? Or stuff these things in the nearly empty Program.cs file? Or something else?
What's the usual practice?
Will Rogers never met me.
|
|
|
|
|
Roger Wright wrote: make a new class
I usually create a "Utility" class that contains such functions.
Why is common sense not common?
Never argue with an idiot. They will drag you down to their level where they are an expert.
Sometimes it takes a lot of work to be lazy
Please stand in front of my pistol, smile and wait for the flash - JSOP 2012
|
|
|
|
|
You beat me to it; I was going to suggest that. The second suggestion I was going to make is separation of the GUI code and the process code.
I did a project where it seemed simplest at the time to put all the process code in the Form class. Predictably the Form class got cluttered (but adding #regions helped).
I later realized having the Form class just send messages to a process class would have simplified it.
Then I realized another benefit of separating the classes: Separating would have made adding a scripting capability much easier; just have the scripting class send messages to the process class (just like the GUI).
Lesson: Separating functionality promotes simplicity (except when you pay for it with increased complexity from the communications between the classes).
"Microsoft -- Adding unnecessary complexity to your work since 1987!"
|
|
|
|