|
Create a class Criterion with 4 string properties: Name, Operation, Value, SecondValue - yes, the SecondValue is required in such rare case like that "between". Also create a collection class for it, e.g. Criteria:List<Criterion> .
The most complicated part is the ToSQL() of Criterion. In many cases, simple concatenation will suffice.
Then start your query with
string query = "SELECT * FROM MYTABLE WHERE 1=1 "
then simply iterate thru the collection and add
query += " AND " criterion.ToSQL();
Well, that is still open to SQL Injection. Update the ToSQL function and do another loop to add the parameters then (next step - doing it in one step is surely still beyond your level, but with two steps, you could do it).
|
|
|
|
|
thank your comment. i will try with this solution
|
|
|
|
|
My funtion done:
private void radButton1_Click(object sender, EventArgs e)
{
string query = "SELECT * FROM Mytable WHERE 1=1 ";
if (txtValue1.Text.ToString()!= "")
{
query += " AND " + OpeReturn(FullName.Name.ToString(), cboOpe1.SelectedIndex.ToString(), txtValue1.Text.ToString());
}
if (value2.Text.ToString() != "")
{
query += " AND " + OpeReturn(TotalAmount.Name.ToString(), cboOpe2.SelectedIndex.ToString(), value2.Text.ToString());
}
query.ToString();
SearchContractBindingSource.DataSource = RemoteClient.remoteData.QueryHopDongBan(query);
}
private string OpeReturn(string field, string ope, string value)
{
switch (ope)
{
case "0":
return field + " like " + "'%" + value + "%'";
case "1":
return field + " not like " + "%" + value + "%";
case "2":
return field + " like " + value + "%";
case "3":
return field + " like " + "%" + value;
case "4":
return field + " = " + value;
case "5":
return field + " != " + value;
case "6":
int index = value.IndexOf(" ");
string value1 = (index > 0 ? value.Substring(0, index) : "");
string value2 = (index > 0 ? value.Substring(index + 1) : "");
return field + " > '" + value1 + "' AND " + field + " < '" + value2 + "'";
case "7":
return field + " > " + value;
case "8":
return field + " >= " + value;
case "9":
return field + " < " + value;
case "10":
return field + " <= " + value;
default:
return " 1 = 1 ";
}
}
Thank All!
|
|
|
|
|
Message Closed
modified 12-Apr-14 1:54am.
|
|
|
|
|
|
OK, I'm sure there is about 1,000 widgets out there on the web. It's just a matter of you typing into Google what you're looking for.
|
|
|
|
|
|
Shady George wrote: what's a widget?
You know, a thing-a-ma-doodle.
The difficult we do right away...
...the impossible takes slightly longer.
|
|
|
|
|
Oh right, one of them. That'll be in .NET 3.Silly won't it?
|
|
|
|
|
Sounds like a deal - but only if I get the domain thrown in.
Those who fail to learn history are doomed to repeat it. --- George Santayana (December 16, 1863 – September 26, 1952)
Those who fail to clear history are doomed to explain it. --- OriginalGriff (February 24, 1959 – ∞)
|
|
|
|
|
Create using Jquery and server side code.
|
|
|
|
|
my sql server procedure is
"
Collapse | Copy Code
CREATE PROCEDURE [dbo].[Attendence]
@EmployeeId int
as
if not exists(select * from TblAttendence where convert(varchar(10) ,CreateDate,23) =convert(varchar(10) ,GETDATE(),23) and EmployeeId =@EmployeeId)
select * from TblAttendence where convert(varchar(10) ,CreateDate,23) =convert(varchar(10) ,GETDATE(),23) and EmployeeId =@EmployeeId
Else
update TblAttendence set LastLoginTime=GETDATE() where EmployeeId=@EmployeeId and convert(varchar(10) ,CreateDate,23) =convert(varchar(10) ,GETDATE(),23)
GO
|
|
|
|
|
Try putting the error in the body of the post and not the heading!
Never underestimate the power of human stupidity
RAH
|
|
|
|
|
i am working on lexical analyzer phase of compiler construction.... i have written a code that display a that the given number is real if it contain one dot int it but if it contains two dot i does not generate error....
here is my code
bool containReal = ss.Any(char.IsDigit) && ss.Contains('.');
if (containReal)
{
MessageBox.Show("this is a Real Number");
break;
}
string str2 = ss.Substring(1, ss.IndexOf('.'));
string str3 = ss.Substring(ss.IndexOf('.') + 1);
bool chk_dot = (str2.Any(char.IsLetter) || str3.Any(char.IsLetter) || str2.IndexOfAny("!@%^&*()#$-_+<>".ToCharArray()) != -1 || str3.IndexOfAny("!@%^&*()#$-_+<>".ToCharArray()) != -1);
if ( chk_dot)
{
MessageBox.Show("Error: Line num " + linecount + " Invalid b/c of two dots in a real number");
errorcount++;
break;
}
can you help me to correct it......
modified 11-Apr-14 21:26pm.
|
|
|
|
|
Please ask your question in only one place.
You'll never get very far if all you do is follow instructions.
|
|
|
|
|
Cả nhà giúp mình viết code thuật toán này trong c# bằng windows form với!
hương dẫn cụ thể luôn hi.thank nhiều
|
|
|
|
|
This is an English-language site.
Đây là một trang web tiếng Anh.
http://translate.google.co.uk/[^]
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
Error msg conveying that a number is invalid because of Two dots within a real number in c#
Anyone can please help me
|
|
|
|
|
Help you with what? All you've given us is a statement that doesn't make any sense and no context information to work with. We have no idea what you're doing, what your code is doing, what you expect it to do, what it's actually doing, any error messages you're getting, ..., absolutely NOTHING to work with.
You've basically walked into a room with a bunch of people who don't know you and said "Error msg conveying that a number is invalid because of Two dots within a real number in c#" and then walked out of the room. Everyone in the room is now thinking "Who the hell was that guy and what was that about?"
|
|
|
|
|
He found another room to mess with ^^
[Flags]
public enum Bool {
True, False, ForSure, Maybe, ProbablyNot, Depends, NotDecidedYet, Undefined
}
private interface IShy { }
|
|
|
|
|
..that kind of error-message yells to me that I should try a number with three dots. And scientific notation. And Little Bobby Tables' age.
What was your question again?
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
Example:
I take a picture with webcam and save it whit name "A" at desktop (fixed)
How can I open it without using opendialog and select it?
I want to click a button and winform default open image with name "A" and path.
Thanks for your help
|
|
|
|
|
Then you're going to have to write code to create the filepath to that image. All a OpenFileDialog does is let the user select a file or files and return their filepaths, that's it. It doesn't actually do the "open" operation on the file. That's up to your code.
|
|
|
|
|
Thanks for your guide, but can you give me the code, I am beginner and I can't write the code by myself! I can read the code and try to understand it. Thank you
|
|
|
|
|
Code for WHAT? I have no idea what you're doing or what you need code for. This site is not in the business of writing code for people on demand.
|
|
|
|