|
Cool, thanks!
I'll try that out tommorow then.
- Munty
|
|
|
|
|
Hi All,
I am converting some of my vb.net code to c# and have run into a problem.
<br />
Select Case True<br />
Case p.ParameterType Is GetType(String)<br />
Response.Write("paramater is a string")<br />
End Select<br />
the code above works but when I try to convert to c# I get the error: A constant value is expected.
<br />
switch (true)<br />
{<br />
case pInfo.ParameterType == typeof(String): <br />
Response.Write("is type of string");<br />
break;<br />
<br />
}<br />
Is there any way to do this in c#?
thanks
tom
|
|
|
|
|
I'm not sure this has to do anything with a switch statement, but try this one:
if(p.ParameterType is string) Response.Write("is type of string");
regards
modified 12-Sep-18 21:01pm.
|
|
|
|
|
The variable goes in the switch part, the constants go in the case part.
switch(pInfo.ParameterType)
{
case typeof(string):
break;
}
Although I'm not sure how it handles Type s. I've only ever used a switch statement for numbers, strings and enumerators.
|
|
|
|
|
Thanks for the reply. I tried that but then I get the error:
A value of an integral type expected
this is the only work around that I can think of, but it isnt really an ideal solution:
switch (pInfo.ParameterType.Name)
{
case "String":
Response.Write("is type of string");
break;
}
I cant believe you cant do this in c#!
thanks
|
|
|
|
|
mcd2424 wrote: I cant believe you cant do this in c#!
I would imagine that C# is enforcing some additional restrictions in order to produce optimised code - something VB is trading for ease of coding.
|
|
|
|
|
Hi,
the switch statement isn't designed for such a thing. Use if-then-else-if instead:
if (pInfo.ParameterType == typeof(String)) {
Response.Write("is type of string");
} else if (...) {
} else if (...) {
}
Robert
|
|
|
|
|
Robert Rohde wrote: the switch statement isn't designed for such a thing.
Please explain
only two letters away from being an asset
|
|
|
|
|
Hi,
this simply means it can only work with values which are internally represented by integers. This applies to integer types, boolean and enumeration values. Don't ask me why MS didn't extend its capabilities - its just a fact.
Robert
|
|
|
|
|
Robert Rohde wrote: can only work with values which are internally represented by integers
Then I must be doing something wrong for this to work
string MyString = "Foo";<br />
switch(MyString)<br />
{<br />
case "Foo":<br />
break;<br />
case "Bar":<br />
break;<br />
default:<br />
break;<br />
}
only two letters away from being an asset
|
|
|
|
|
Hi,
as usual string seems to get a special treatment . Probably there are some more case where switch works, but the fact remains that its rather limited (compared to some other languages).
Robert
|
|
|
|
|
I have been playing with Access and starting to understand the relationship within tables. In a C# project, there are two ways to get access to a database. For example, I can use SQL statement to create a table; I can also use SQL statement to read value from a table.
Another way is to use the database wizard to create a table. One good thing with the database wizard is that you get access to the field directly by intellicense and the fields are easier to bind with the controls. I am just starting learning database. The problem I see with the wizard, if your database changes. For example, right now I am using an access file about if that change to oracle or any other type. How can I approach that? Will that be easier to modify. I want to know if scripting is better or using the wizard. What I like with the wizard is getting access to the field directly by intellicense and the easy biding. With the scripting, you can simply couple of lines of code. I also see more books and articles uses scripting instead of the wizard; maybe because the wizard is new. I want to know the benefit between scripting and the wizard witch gives direct access or creating to the database.
Another question I have is naming the fields of the database. For instance, which one is better or preferable? [Last Name] or [LastName], [Employee Number] or [EmployeeNumber], [Total Cost] or [TotalCost]; I prefer the single name rather than using space. So which one is better to use? I was looking at the Access Database Wizard, it uses single name rather than names with space. So I assume naming convention without space is better.
|
|
|
|
|
mfcuser wrote: question I have is naming the fields of the database. For instance, which one is better or preferable? [Last Name] or [LastName], [Employee Number] or [EmployeeNumber], [Total Cost] or [TotalCost]; I prefer the single name rather than using space.
I personally prefer no spaces, it saves me from headaches later on
Some people have a memory and an attention span, you should try them out one day. - Jeremy Falcon
|
|
|
|
|
Thank you I prefer that as well. About the wizard vs the script?
|
|
|
|
|
mfcuser wrote: About the wizard vs the script?
I rarely work with Access anymore. Wizard is fine, but if you want to port the tables to other databases, scripts are helpful. You'll just need to make any necessary minor modifications depending on what database you are migrating to
Some people have a memory and an attention span, you should try them out one day. - Jeremy Falcon
|
|
|
|
|
This is the way I look at it. Assume that I have an application and I created my table on access or sql. That means, my tables are access or sql. Now, assume some users want to use that application but with oracle or some other databases. I assume it would be better to use scripting.
Another way again, assume that I use access database, but some users want to use sql. So it will be changing some few lines of code to do that.
I also want to know if the wizard provides options for interchangeability. Basically, I want my application to have a wizard where user can choose the type of database to use for example, a user can choose access for local, sql for server or oracle for server etc. Assume that I use the wizard with access, will it be possible for me later to change that or have option to change it to sql, oracle etc.
|
|
|
|
|
mfcuser wrote: I also want to know if the wizard provides options for interchangeability. Basically, I want my application to have a wizard where user can choose the type of database to use
You want to read up on Data Abstraction Layers. The idea is that you have a variety of classes with the same interface, however, your application instantiates a specific class depending on the database to use. For the rest of the application all it sees is the interface, it doesn't care or need to know anything about the database. Only the DAL classes need to know about differnet databases.
|
|
|
|
|
mfcuser wrote: The problem I see with the wizard
...is that it is a wizard - Wizards are evil! Use them to see how the stuff works as a beginner, but don't rely on them.
mfcuser wrote: I also see more books and articles uses scripting instead of the wizard; maybe because the wizard is new.
No, it is because the wizard is evil!
mfcuser wrote: For instance, which one is better or preferable? [Last Name] or [LastName],
I prefer pascal cased names. That is a name where each word starts with a capital letter and there are no spaces. e.g. LastName, EmployeeNumber or TotalCost.
In a realworld situation it is up to the coding standards of the development team you are working in. Some prefer to prefix things (e.g. tblPerson, clmFirstName), others don't. Some prefer PascalCased others prefer camelCased (same as pascal, but with the first letter of the first word lowercased)
|
|
|
|
|
The way I look at it, for the fields I use pascal cases like [FirstName], [LastName] etc. About for the table name, is it good to use space for table name? Like for example, which one is better to name a table Customer Information or CustomerInformation?
|
|
|
|
|
mfcuser wrote: for the fields I use pascal cases like [FirstName], [LastName] etc. About for the table name, is it good to use space for table name? Like for example, which one is better to name a table Customer Information or CustomerInformation?
Keep a consistent set of rules and you'll do much better.
For example: PascalCase for all names in the database. Singular form of all nouns.
|
|
|
|
|
Colin Angus Mackay wrote:
Keep a consistent set of rules and you'll do much better.
Yep. But it is easier said than done, hence the need for reviews
If you try to write that in English, I might be able to understand more than a fraction of it. - Guffa
|
|
|
|
|
Given that the wizard gives easy access to the fields via intellicense. If I use the wizard to I still need to use parametization for security reason?
|
|
|
|
|
|
mfcuser wrote: Given that the wizard gives easy access to the fields via intellicense. If I use the wizard to I still need to use parametization for security reason?
I've no idea what the wizard does. I used it once in 2001, saw what it did and thought Eugh!!! I'm not using that again!
|
|
|
|
|
Download this free e-book.
ASP.NET Database Programming Weekend Crash Course™ - introduces the reader to ASP.NET database programming in one weekend: 30 sessions of a half hour each, for 15 hours stretching from Friday afternoon to Sunday evening. At the end of each section of the book, you’ll get a chance to test your knowledge before continuing.
http://www.ebooknetworking.com/aspnet-database-programming-weekend-crash-course-p-28606.html[^]
modified 1-Aug-19 21:02pm.
|
|
|
|