|
George_George wrote: BTW: if LINQ is slow, why people will use LINQ?
I think Mark is right. We can get the benefits from LINQ for integrating the data and object. But I am not sure about the performance of LINQ. Though I do believe Mircosoft would make greate efforts to improve it.
LuckyBoy
|
|
|
|
|
In my experience and other guys besides me, the performnace feedback of LINQ is bad.
What about yours?
regards,
George
|
|
|
|
|
In fact, I did not use LINQ quite often in my project. Hence I could not give you any comment about performance of LINQ, especially without investigating from performance tool.
However, I have to admit the creativity of LINQ. For a certain degree, it presents the .net technology tendency-integrate data. Although maybe the final goal is ambitious and full of issues, such as performance, complexity, nobody would ignore the benefits form LINQ.
LuckyBoy
|
|
|
|
|
Hi LuckyBoy,
I think ising ADO.Net is fine enough, why bothering using LINQ?
regards,
George
|
|
|
|
|
Well, Language Integrated Query, maybe to provide a common QUERY method for various data source from different domains, such as ADO.net, XML, SQL server, is the way how microsoft simplify the access for data and object.
But it is still young, so let us try to be nice and patient.
Tan Li
I Love KongFu~
|
|
|
|
|
Thanks Tan Li!
regards,
George
|
|
|
|
|
Welcome~
Tan Li
I Love KongFu~
|
|
|
|
|
Sounds to me like you should be using a set data structure, if you never need the duplicate strings.
At university studying Software Engineering - if i say this line to girls i find they won't talk to me
Dan
|
|
|
|
|
Thanks Dan!
But there is no such data structure in .Net, correct?
regards,
George
|
|
|
|
|
|
Thanks Dan!
Good stuff!
regards,
George
|
|
|
|
|
salam sir;
how can made c#.net messenger?
mohammedali
|
|
|
|
|
Most people would use a compiler to do that, and then write some code.
Christian Graus
Driven to the arms of OSX by Vista.
|
|
|
|
|
I think they would write code and then run it through the compiler. I may be wrong though. Google can help you decide that though.
|
|
|
|
|
*grin* yeah, I knew as I typed it that I had that backwards. I really meant, you start by getting an IDE.
Christian Graus
Driven to the arms of OSX by Vista.
|
|
|
|
|
Or a book? Maybe even an article[^] or two?
The weird part is, there was a similar question in vb.net and I posted a pretty simple copy and paste link of some code that, all that would be really needed is some UI modifications to suit his needs, but I doubt he would even get that far. Nevermind porting it over to C#. Funny stuff.
|
|
|
|
|
Christian Graus wrote: start by getting an IDE
No thanks.
|
|
|
|
|
Does that mean you take pride in writing code the slow way ?
Christian Graus
Driven to the arms of OSX by Vista.
|
|
|
|
|
Absolutely, quality takes time.
Hand tools were good enough for my grandfather, they're good enough for me.
|
|
|
|
|
See, now I can't work out if you're joking or not.
Christian Graus
Driven to the arms of OSX by Vista.
|
|
|
|
|
Only partly. I see no reason to use VS and create all the horrible solution and project files and directories just to write and compile a simple console program.
Generally, for console programs and library routines, I use edit and compile with CSC.
I miss the days of Turbo Pascal and its ilk where it would simply build what you had open.
I'm hoping Leppie will add that to xacc.ide
|
|
|
|
|
Hi,
I don't know if this was more suited to the database message board or not but I think my question is more to do with my code rather than the database.
I have a basic table with a few columns. One of them is a Bit type and is effectively a flag. All I want to do is get the flag value for a given ID.
I've tried using an output parameter in a stored procedure but I don't know the best way of retrieving the flag value and converting it to a Boolean in code. I don't think a SqlDataReader is ideal because it's only one value I want to return.
ALTER PROCEDURE SP_UserValid
@ID INT,
@Valid BIT OUTPUT
AS
SET NOCOUNT ON;
SET @Valid = (SELECT [Valid] FROM tUsers WHERE ID = @ID)
Here's my code:
SqlConnection connection = new SqlConnection(_ConnectionString);
SqlCommand cmd = new SqlCommand();
cmd.Connection = connection;
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "SP_UserValid";
cmd.Parameters.Add(new SqlParameter("@ID", userID));
cmd.Parameters.Add(new SqlParameter("@Valid", bValid));
cmd.Parameters["@Valid"].SqlDbType = SqlDbType.Bit;
cmd.Parameters["@Valid"].Direction = ParameterDirection.InputOutput;
connection.Open();
cmd.ExecuteNonQuery();
cmd.Connection.Close()
Thanks for looking
|
|
|
|
|
bool isValid = Convert.ToBoolean(cmd.Parameters["@Valid"].Value)
only two letters away from being an asset
|
|
|
|
|
You could also use:
bool isValid = Convert.ToBoolean(SqlCommand.ExecuteScalar());
I'd probably have used
select @Valid = [Valid] FROM tUsers WHERE ID=@ID
But what you have is fine.
Lastly, you may want to use ParameterDirection.Output for the @Valid parameter since there isn't a value being passed in...
|
|
|
|
|
Thanks to both you guys
I ended up making my SP simpler:
...
SELECT [Valid] FROM tUsers WHERE ID = @ID
...
I then used ExecuteScalar() and it works great!
One question though, what if the value returned from the DB is NULL ? I've set the column to disallow NULL values but I thought it should probably have something in the code too, just in case
Lastly, is there a best practice for this sort of thing in terms of performance?
|
|
|
|