|
Hi guys,
i want to search in the sqlserver database table for words that the user of my app types in a textbox...i select now * from the table and fill the dataset. now how can i iterate trough the DataTable to search the input? or is there a better way to do this? can u give me some code pls thanx
|
|
|
|
|
You'd be better off creating a stored procedure that takes the contents of the textbox as an argument.
Base your select statement on the arguement.
Something like
<br />
<br />
Create procedure FindWords @words varchar(max)<br />
as <br />
SELECT * from yourtable where yourfield like @words<br />
<br />
Then you don't have to worry about iterating over the dataset.
"You're very clever, young man, very clever," said the old lady. "But it's turtles all the way down!"
|
|
|
|
|
Thanx duncanmhor for your response,
the problem is that we don't use stored procedres in this project. so i have to use the iteration.
|
|
|
|
|
Djavid j wrote: i select now * from the table
Djavid j wrote: we don't use stored procedres in this project. so i have to use the iteration.
ummm no, that is not your only option.
|
|
|
|
|
DataTable dtSample = new DataTable();<br />
<br />
<br />
for(int i = 0; i < dtSample.Rows.Count; i++)<br />
{<br />
if(dtSample.Rows[i]["ColumnName"].ToString() == "some data")<br />
{<br />
}<br />
}<br />
dtSample.Dispose();<br />
|
|
|
|
|
Djavid j wrote: the problem is that we don't use stored procedres in this project. so i have to use the iteration.
No, you don't have to do that, and you should not do that.
You should always strive (within reasonable limits of course) to minimise the amount of data that you fetch from the database. Any data that you can elliminate in this step is data that the database doesn't have to handle and data that your application doesn't have to handle.
Just use a query like the one duncanmhor showed in the stored procedure. It will return a result with only the rows that you are interrested in.
---
"Anything that is in the world when you're born is normal and ordinary and is just a natural part of the way the world works. Anything that's invented between when you're fifteen and thirty-five is new and exciting and revolutionary and you can probably get a career in it. Anything invented after you're thirty-five is against the natural order of things."
-- Douglas Adams
|
|
|
|
|
You can build the query in your method. It's best practice to use stored procedures though, since building the query in the method opens you up to sql injection attacks.
<br />
String query = String.Format("Select * from yourtable where yourfield like {0}", search criteria);<br />
But please read up on SQL Injection attacks and why you should be using stored procs.
"You're very clever, young man, very clever," said the old lady. "But it's turtles all the way down!"
|
|
|
|
|
Duncanmhor,
sorry for bordering u again bud the problem is i don't know the name of my field. i have only a combobox with the name of tables and a textbox for user input, so the field can be any column in my table. how do i solve it now?
|
|
|
|
|
I'm not sure what your application is doing, but if you have the names of the tables, you should also have the names of their columns. You could simply change the string based on the selected table and fill your select statement with or clauses
eg
<br />
select * from yourtable where a like arg or b like arg or c like arg...<br />
From what you are telling me though, I'd have serious concerns about the way your application is designed.
"You're very clever, young man, very clever," said the old lady. "But it's turtles all the way down!"
|
|
|
|
|
Djavid j wrote: we don't use stored procedres in this project
Why not? Is it a management decision?
|
|
|
|
|
Hey all
Q1:
I have a numericupdown which the user can change. Upon change a number of datetimepicker is supposed to be shown, according to the value of the numericupdown. How should i add these datetimepickers? Create them all in the designer (i need maximum 31) and set visible=false, or with flowlayout panel, and create with the new keyword??
Q2:
How can i change values of multiple components through functions? In Q1 i created, lets say 31, datetimepickers. I named them dtp1, dtp2, dtp3, and so forth. How can i do something like this:
(pseudo code)
<br />
for (int i = 0; i < numberofdatetimepickers; i++)<br />
{<br />
dtp[i].enabled = true ;<br />
} <br />
|
|
|
|
|
Hi,
Q1.
You could use Visual Designer to compose the maximum complexity, then hide what you
don't need. But that is a lot of work, and generates a lot of code, and leads to all
kinds of Control names.
I find it easier to write code to do that, so I would generate the Controls at run-time;
this means your code has to set all relevant properties, in particular Location.
If you do it in a loop, you can store all these Controls in a collection (an array,
an ArrayList, a List< DateTimePicker>, whatever)
Sometimes I tend to create one Control with Designer, then write code to Clone() that
one, adjust its properties, etc. That way, you can design and see the properties for
your Control prototype.
Q2.
If created at run-time, the Controls don't have individual variable names, but reside
in a collection (array, ArrayList,..) which you can enumerate with a for loop or a
foreach loop.
Otherwise, you could:
- enumerate all the Form's Controls (thru Controls property) and skip the ones you don't
need;
- or create a collection once (new array or ArrayList, then add the references), then
enumerate as much as you like.
Luc Pattyn [Forum Guidelines] [My Articles]
this months tips:
- use PRE tags to preserve formatting when showing multi-line code snippets
- before you ask a question here, search CodeProject, then Google
|
|
|
|
|
thx alot for the suggestions
If i create the controls at runtime, and add them to an array, can i then add the array to something like a flowlayoutpanel, and still acces them through the array? or will i have to make a new array, consiting of all the items in the flowlayoutpanel?
|
|
|
|
|
Hi,
you cannot add an array to a Panel or other Container, but you can add all the Controls
in the array to the Panel/Container, one by one. You could do that in the same loop
where you create them and add them to the array.
Controls are reference types, so when you call "new SomeControl" you create a SomeControl
and get a reference to it, which you can store multiple times, e.g. once in an array,
once in the Controls property of some Container (to make them show on your Form).
Luc Pattyn [Forum Guidelines] [My Articles]
this months tips:
- use PRE tags to preserve formatting when showing multi-line code snippets
- before you ask a question here, search CodeProject, then Google
|
|
|
|
|
Everthing in my solution is compiling and linking and running ok.
Two days ago, I now receive the following message when I run the solution.
"There were development erros. Continue?"
It seems to run ok. I am concerned and would like to fix it.
Gene
|
|
|
|
|
Professor Gene wrote: "There were development erros. Continue?"
development erros? Really? I've never seen that message are you sure? I have seen this one:
"There were build errors. Would you like to continue and run the last successful build?"
If that is the message you see then if you click "Yes" you are not running the code that does not compile because ... well it has to compile before it can run. Also if that is the message you are seeing it seems you need to work on your reading and comprehension skills.
|
|
|
|
|
led mike wrote: "There were development erros. Continue?"
Now it's not just end-users anymore who don't read error messages properly anymore.
This whole business is going down...
Regards,
mav
--
Black holes are the places where God divided by 0...
|
|
|
|
|
What? Are you fishing for an invitation into our club? Talk to Mark Salsbery[^], he's currently in charge of candidate screening.
|
|
|
|
|
I'm just fed up with hearing customers telling me "there was an error message. Fix it! No, I didn't read it and can't tell you what is said."
Regards,
mav
--
Black holes are the places where God divided by 0...
|
|
|
|
|
mav.northwind wrote: "there was an error message. Fix it! No, I didn't read it and can't tell you what is said."
Is this your application? If so do you produce logs of some sort? That is a far superior approach than relying on users to read messages.
|
|
|
|
|
Sure it does, but for our average customer even opening a simple text file is beyond scope...
Regards,
mav
--
Black holes are the places where God divided by 0...
|
|
|
|
|
mav.northwind wrote: but for our average customer even opening a simple text file is beyond scope
Why would you have a customer open a log file?
|
|
|
|
|
Because many don't have internet access on the machines our applications are running on so they can't simply mail the files to us...
Regards,
mav
--
Black holes are the places where God divided by 0...
|
|
|
|
|
This is starting to get old... provide a printing feature and have the fax them to you or even snail mail them, anything you can think of is superior to having a customer read a log file or even worse, not use the log file at all which is what it sounds like you are doing.
|
|
|
|
|
Hi People - I have been tasked with a project to choose the best method and tools to deploy our c# app - it probably needs to include obfuscation, maybe some form of encryption/source code protection etc and certainly be able to run without the framework being previously installed. I know there are a few products out there - Can anyone recommend some/give some advise ?
Thanks
|
|
|
|