|
Hi fellow C#-ers
I have a question, hope there's someone out there that might give me a possible solution to this issue.
Basically I'm trying to parse a string (the query string) to my returnResults method which in turn returns a DataSet object. What I'm trying to achieve is to strip down the query string and work with a certain number of character which in turn will be parsed to my SqlDataAdapter to provide it with the table name.
So, let’s say my query string looks like this:
<br />
SELECT * FROM Product<br />
All I basically need is the table name, in this case "Product".
How is it possible to only strip the string of the character "Product" ?
<br />
<br />
public DataSet returnResults(string query)<br />
{<br />
SqlDataAdapter sqlDA = null;<br />
DataSet ds = null;<br />
StringBuilder str = new StringBuilder();<br />
string tableName = null;<br />
<br />
str.Insert(0, query);<br />
<br />
tableName = str.<br />
<br />
<br />
return ds;<br />
}<br />
<br />
Your feedback will be much appreciated.
Thanks!
R
|
|
|
|
|
You can use a regex that looks for the word 'FROM' and then grabs the word after it. You could even find that with string mashing
It's a shame your code is dealing with SQL this directly
Christian Graus - C++ MVP
'Why don't we jump on a fad that hasn't already been widely discredited ?' - Dilbert
|
|
|
|
|
Hi Chistian,
Thank you for your response.
I also would like to have your ideas when you said
Christian Graus wrote: It's a shame your code is dealing with SQL this directly
What are your recommendations? I'm open and flexible to advice and ideas.
Thanks.
R
|
|
|
|
|
I always like to see the data layer confined to stored procedures.
Christian Graus - C++ MVP
'Why don't we jump on a fad that hasn't already been widely discredited ?' - Dilbert
|
|
|
|
|
Hi,
there are basically two ways:
1)
string operations
there is String.IndexOf(str) to locate a substring,
String.Substring(start, length) to take a substring,
String.Trim() to remove white space at start and end,
and String.Split(separator, times) to split a string by a separator
In your case, I would try something like:
int i=s.IndexOf(" FROM ");
s=s.Substring(i+5);
string[] sa=s.Split(' ', 2);
s=sa[0].Trim();
alternatively you could split first, then search which array element contains FROM
and use the next array element. Or just assume it always must be the fourth element...
You should carefully choose your startegy to locate the stuff you need.
2)
regular expressions
very powerful, not very intuitive; in this case I would prefer string operations
Luc Pattyn
|
|
|
|
|
Hi Luc,
Thank you for providing me with a solution.
It makes sense now!
I have to be honest, I haven’t had to deal with string manipulation in a long time.
I appreciate the feedback.
Thanks.
R.
|
|
|
|
|
|
I can't install Visual C# on my PC! When I try to install it, it starts, and there is this line at the bottom that says "Re-Establishing the connection... (Attempt 1 of 5)". The "1" eventually gets up to 5 and then I get an error telling me the setup has encountered a problem. Is the setup trying to establish a connection with the internet? My PC doesn't have internet - I have to use my dad's Mac. Any suggestions?
---
Sup!
|
|
|
|
|
The basic install from the Microsoft site is just a bootstrap installer, so you download a small program that presents the options then you only download the bits you actually want to install. If you don't have an internet connection this installer won't work.
However, there is a solution. You can download a CD image in either ISO or IMG format. The download and installation instructions can be found here: http://msdn.microsoft.com/vstudio/express/support/install/[^]
If you are downloading from a Mac, the burning an ISO image onto a disc will be different.
|
|
|
|
|
My dad's mac does not have the ability to burn to a cd. to transfer files from one computer to another i've been using a 128MB USB. But thank you for the help! Now I know what the problem is. My parents keep saying that they're going to get a usb connector that will recieve the internet from our router. (They said this a really long time ago, yet it still hasn't happened )
---
A 13 Year Old Programming Wiz
|
|
|
|
|
Hello Everybody,
I want to retrieve HTML TextBox value from Code-Behind. I can't make it Runat="Server" as i am doing some Javascript functionality. When i am making it Runat="Server" my JS function is throwing an error.
Please help..
Thanks in advance
|
|
|
|
|
As long as the text box has a name and is part of a form, you should be able to query the Request to find the value. Something like string s = Request["MyTextBoxName"];
|
|
|
|
|
Thanks for your reply...
Actually i had bind that textbox in a DataGrid.
I am new to C# so please help..
|
|
|
|
|
Well, I definitely would need more information on this and I'm not sure on your familiarity with ASP. Could you describe what exactly it is that you're trying to do with the text box in your data grid?
|
|
|
|
|
Bobb1982 wrote: I can't make it Runat="Server" as i am doing some Javascript functionality. When i am making it Runat="Server" my JS function is throwing an error.
Actually you still use JS on server side controls (runat=server).To reference these controls you can use the following:
<br />
var oControl=document.getElementById("<%=your_control_ID.ClientID %>");<br />
To get/set a value , you can use the following:
<br />
oControl.Value<br />
|
|
|
|
|
Whenever I run a program such as Windows Notepad, there are little dots in the lower right corner that make it easier to resize the window (they make it so your mouse doesn't have to be right on the line). Could anyone tell me how I can get these in my programs? Thanks in advance.
---
Sup!
|
|
|
|
|
Use a sizable border and set the SizeGripStyle property to show or auto .
--
Rules of thumb should not be taken for the whole hand.
|
|
|
|
|
What object is the
SizeGripStyle a property of?
---
Sup!
|
|
|
|
|
The form. In the designer it's under Window Style.
--
Rules of thumb should not be taken for the whole hand.
|
|
|
|
|
|
OK... So your saying that to do this, I would type the following... (In the Window : Form class)
this.SizeGripStyle = SizeGripStyle.show
or would I do it like this?
this.SizeGripStyle = "show";
Sorry for being new:laugh:
<div class="ForumSig">---
A 13 Year Old Programming Wiz</div>
|
|
|
|
|
The former. The latter will give you a compile error.
You can do it using the VS form designer though. You can access all (most???) of the public properties of VS provided controls this way. 3rd party controls may or may not depending on how they were configured.
In the designer for your form class select select the form itself, not one of the controls in it. IN the properties tab scroll down to window style(if neccessary expand the tree) and click in the grid row for SizeGripStyle, then drop the combobox and make your selection there.
--
Rules of thumb should not be taken for the whole hand.
|
|
|
|
|
I forgot to mention that I don't have Visual C#. heh... It won't work..
---
A 13 Year Old Programming Wiz
|
|
|
|
|
What won't work, do you just mean not being able to use the VS GUI, or that setting the grip style isn't working. If the latter, are you getting an error and if so, what?
--
Rules of thumb should not be taken for the whole hand.
|
|
|
|
|
Wow, late reply. Sorry, hadn't realized that you had sent anything. It won't install on my computer, but someone else explained it to me.
---
A 13 Year Old Programming Wiz
|
|
|
|