Label control in ASP.NET failure to pick a Label property - c#

I am trying to use the Label control of ASP.NET as below:
public static bool addData(string storedProcName, string[] dynamicParamName, object[] paramVals, Label msg)
{
msg = "Recorded Added successfully";
cmd2.Connection.Close();
cmd2.Dispose();
}
However, I do not seem to get the "Text" property of Labels, as in msg.Text. Is there something I am missing here? Thank you.

Much as Chris Mullins suggested it looks like you are referring to the wrong type of label.
I am surprised that you aren't getting any comments of ambiguous names if you definitely have the System.Web.UI.WebControls referenced in a using statement. However, you should be able to fix it by either removing the line that you probably have saying "Using System.Windows.Controls" or by changing your reference to lable to be:
System.Web.UI.WebControls.Label lb = new System.Web.UI.WebControls.Label();
Or similar things.
Essentially it all looks like it boils down to ambiguity of the label class in your code.

Check that you have using System.Web.UI.WebControls; in your using section. Other than that you probably have a syntax error somewhere causing .net to not give you the intellisense.
Based on what you said in your comment it sounds like you may be working in a class library, if so make sure you include a reference to System.Web If you have a reference to System.Windows.Forms or a using System.Windows.Forms, you can remove them if you are not using them.
If you include both using System.Windows.Forms and using System.Windows.Forms then the compiler may not know which one you mean when you just say Label, in which case you would have to fully qualify it with all the namespaces.

Related

I cannot reference Microsoft.Owin.Security.AuthenticationManager, why?

I get the following error on my page:
Server Error in '/' Application.
The current type, Microsoft.Owin.Security.IAuthenticationManager, is an interface and cannot be constructed. Are you missing a type mapping?
I founded out that I should put this code in Unityconfig.cs to resolve this problem:
container.RegisterType<IAuthenticationManager>(
new InjectionFactory(
o => System.Web.HttpContext.Current.GetOwinContext().Authentication
)
);
But the problem is that the IAuthenticationManager is not visible
although I have added the Owin.Security as reference, I have the
using Microsoft.Owin.Security;
Can you please give me some hints?
Note that the interface you are trying to use (Microsoft.Owin.Security.IAuthenticationManager) isn't in Microsoft.Owin.Security.dll but is actually in Microsoft.Owin.dll. Check the two lines at the top that tell you both the namespace and the assembly. So you just need to add a reference to that assembly.
For situations like this, it's always worth checking the docs as the namespace doesn't always equate to the assembly name.

Why can't I use the following IEnumerable<string>?

I'm getting the following error:
Error 25 The type or namespace name 'IEnumerable' could not be found (are you missing a using directive or an assembly reference?) C:\Development\Leverage\Leverage\Reports\SurveyLevel.aspx.cs 39 17 Leverage
because of this line:
private IEnumerable<string> GetDateParameters()
How do I deal with this? I tried to add in the line:
using System.IDisposable
at the top, but this doesn't fix it.
As others have said, you're missing using System.Collections.Generic;.
But that's giving you a fish; we should be teaching you to catch your own fish.
The way to solve this problem on your own is:
Enter the name of the type into your favourite search engine, and see what comes back:
IEnumerable(T) Interface (System.Collections.Generic)
http://msdn.microsoft.com/en-us/library/9eekhta0
Exposes the enumerator, which supports a simple iteration over a collection of a specified type.
See the bit that I highlighted in bold there? That's the namespace that you're missing.
If you still get the error then you are likely missing a reference; you can find out which DLL you have failed to reference by clicking on the link and reading the documentation page; it will tell you which DLL to reference.
You are missing a using System.Collections.Generic; statement at the top of the code file.
The generic IEnumerable<T> type cannot be found directly.
You could declare the full name instead:
private System.Collections.Generic.IEnumerable<string> GetDateParameters()
IEnumerable is in System.Collections
IEnumerable<T> is in System.Collections.Generic
You just need to add System.Collections.Generic namespace top of your code.
IEnumerable<T> belongs on this namespace in mscorlib.dll assembly.
You can use it like;
private System.Collections.Generic.IEnumerable<string> GetDateParameters()
Above answers are good. In my case, even after following the above answers it did not resolve the issue. Still the red squiggly constantly appeared.
Issue was the Framework of the project. It was by default set to .NET Framework 4.0.3 and changing to .NET Framework 4.0.0 will also help.
Save your Project properties after the change, build and it should all work.
Hope this helps.

Resolving an ambiguous reference

I'm trying to create a manager class to use with my charting tool, the problem is the tool I use, uses the same names for both a 3d and 2d charts which is resulting in ambiguous reference when I try to add the 2d library.. any ideas how best to resolve this?
For example,
using tool.2dChartLib;
using tool.3dChartLib;
BorderStyle is a member of both of these
I've tried casting the areas where I use BorderStyle. I suppose it could work if i just reference tool but then that would mean I'd have hundreds of tool.class lines instead of class
If the types with the same name exist in both namespaces, you have a couple of options:
1) If the number of types is small, create an alias for that type:
using BorderStyle3d = tool.3dChartLib.BorderStyle;
2) If the number of types is large, you can create an alias for the namespace:
using t3d = tool.3dChartLib;
Then in your code...
t3d.BorderStyle
You can use full type names, or create aliases:
using 2dBorderStyle = tool.2dChartLib.BorderStyle;
Use namespace alias
using twoDimensionLib = tool.2dChartLib;
using threeDimensionLib tool.3dChartLib;
I had similar problem that the class had ambiguous reference for the SAME namespace, so I deleted a specific Project (under Dependencies/{my.prj.name}.API) which had duplicated reference.
After that I referenced Project back with using of CTRL+.
Hope it'll work for you.
New reference of specific class

Type or Namespace Expected in C# 2.0 VS2005

Just wanna create an object of ProgressBar control as below code :
pgImportProcess process = new pgImportProcess();
But it occurs an error
Type or namespace name expected
How to solve this problem ?
Sounds like you're missing a using statement for the namespace that contains the pgImportProcess class.
The winform progressbar class is located at System.Windows.Forms namespace so you need to write:
System.Windows.Forms.ProgressBar process=new System.Windows.Forms.ProgressBar();
EDIT:
#Oudam San:
pgimportProcess is a name of ProgressBar Control , sorry for not detail explanation.
That means reference variable pgimportProcess is created (take a look at form designer code). However if you want to instantiate the ProgressBar and want to store reference into pgimportProcess variable then you may write:
pgImportProcess = new ProgressBar();

Alias and namespace conflict in Visual Studio Designer

I have a namespace conflict between two referenced assemblies:
i.e., I'm referencing Foo.A.Foo and Foo.Bar, so when I say I want Foo.Bar.Control, VS is trying to find Foo.A.Foo.Bar.Control
I can twiddle the Designer.cs code by adding new global:Foo.Bar.Control(), but as soon as I change anything, VS switches back.
I know there's something about adding aliases directly to the reference, I've tried but haven't managed to find the right combination (inline alias, using alias, reference alias).
Help?
"extern alias" may be what you mean, but I'm not sure what the designer will do with it, unfortunately...
I'm not even sure that's what you're after though - that's normally for two types from different assemblies with the same name.
You can write namespace aliases with a using directive, e.g.
using FooControl = Foo.Bar.Control;
but again, the designer is going to rewrite your code...
OK, this isn't the answer, but it's what I found for a workaround:
namespace FooBar
{
class FooBarControlHack : Foo.Bar.Control { }
}
So I can do the following in the Designer.cs :
this.fooBarControl = new FooBar.FoorBarControlHack();

Categories