|
I'm using c# and trying to access oracle
here's my code:
try
{
String connString = "Provider=MSDAORA;Data Source=127.0.0.1;User id=system;Password=akar;";
string query = "insert into test values(" + textBox2.Text + ", `" + textBox3.Text + "`, `" + textBox4.Text + "`);";
MessageBox.Show(query);
OleDbConnection myConnection = new OleDbConnection(connString);
OleDbCommand myCommand = new OleDbCommand(query, myConnection);
myConnection.Open();
OleDbDataReader myReader = myCommand.ExecuteReader();
}
catch (Exception ex)
{
MessageBox.Show(ex.StackTrace);
}
That code works just fine when I use select, but when I change it into insert it throws an ORA-00911 Invalid Character error at this code OleDbDataReader myReader = myCommand.ExecuteReader();
Can anyone help me, please?
|
|
|
|
|
Is it because you have copied and pasted your code from some kind of word processing program, and your single quotes are special characters rather than standard single quotes?
|
|
|
|
|
well, I've tried using "' " but it doesn't work either
|
|
|
|
|
Oh, hang on... you haven't listed the fields for your insert into...
insert into test (field1, field2, field3) values (...);
|
|
|
|
|
Here, I've changed my code into this:
string query = "insert into test(no, name, dob) values(" + textBox2.Text + ", '" + textBox3.Text + "', '" + textBox4.Text + "');";
But I still got the error
-ps:column no is int others are varchar
A hidden needle is way more effective than an unsheathed sword.
That is, in the hand of professionals.
What about you?
Just pray your enemies are blind
|
|
|
|
|
Hmmm... have you tried executing your sql directly to check that it's working as you expect?
|
|
|
|
|
yep, it works in sql
-ps:fyi, that code works when a button is clicked. after I've changed it into showing the query it shows this insert into test(no, name, dob) values(23, 'sawqwd', '322');
A hidden needle is way more effective than an unsheathed sword.
That is, in the hand of professionals.
What about you?
Just pray your enemies are blind
|
|
|
|
|
Well, if the code works when the button is clicked, and the sql works if you copy/paste it into Oracle and run it directly, there must be an error in the calling of the querydef...
Do you have the correct syntax, parameters, names etc?
|
|
|
|
|
Silly me, I actually only need to remove the semicolon and it works
string query = "insert into test(no, name, dob) values(" + textBox2.Text + ", '" + textBox3.Text + "', '" + textBox4.Text + "')";
Guess that would mean no semicolons when connecting from c# huh?
It's so different from J2SE,
Thank for the assistance
A hidden needle is way more effective than an unsheathed sword.
That is, in the hand of professionals.
What about you?
Just pray your enemies are blind
modified on Thursday, May 26, 2011 1:50 AM
|
|
|
|
|
Dammit... the semicolon was the first thing I was going to mention, but when I checked oracle sql syntax it was there...
Glad you got it fixed!!
|
|
|
|
|
It is not related to the language, could be a feature of the Provider MSDAORA that you're using.
|
|
|
|
|
Firo Atrum Ventus wrote: Guess that would mean no semicolons when connecting from c# huh?
Conceptually you are executing a 'statement'. That is implicit.
The semi-colon is superfluous in that context.
You can however construct a statement which is composed of other statements. In that case the internal statements would require a semi-colon.
|
|
|
|
|
Nah, I've tried that too. It didn't work.
A hidden needle is way more effective than an unsheathed sword.
That is, in the hand of professionals.
What about you?
Just pray your enemies are blind
|
|
|
|
|
Firo Atrum Ventus wrote: Nah, I've tried that too. It didn't work.
You would need to post what didn't work.
|
|
|
|
|
Everything's the same as above except this line
string query = "insert into test values(" + textBox2.Text + ", `" + textBox3.Text + "`, `" + textBox4.Text + "`);";
changed into
string query = "insert into test values(" + textBox2.Text + ", `" + textBox3.Text + "`, `" + textBox4.Text + "`);select * from test";
A hidden needle is way more effective than an unsheathed sword.
That is, in the hand of professionals.
What about you?
Just pray your enemies are blind
|
|
|
|
|
The second is not a statement.
It is two statements.
Investigate the use of Begin/End. Do it in a SQL browser/gui first before attempting to code it in C#.
|
|
|
|
|
Hi
I have a SQL view that returns different results depending on how I run it. If I run it in Design mode, all of the records in some of the columns come back as NULL. However, when I SELECT TOP 1000 rows from the view, the records in these columns are returned with the correct values. Any ideas why this happens?
|
|
|
|
|
What is your database?
What is your client (app or SSMS) or ?
It may be caused by the transport layer not liking the volume.
Never underestimate the power of human stupidity
RAH
|
|
|
|
|
Etienne_123 wrote: some of the columns come back as NULL. However, when I SELECT TOP 1000 rows
from the view, the records in these columns are returned with the correct values
Sounds like a data conversion issue.
Common sense is admitting there is cause and effect and that you can exert some control over what you understand.
|
|
|
|
|
hi all,
i use a sql server 2008 import data, to import my database from access, but my access database always change because my application work over it. i want a way to make sql server 2008 import data to work automatically as the changes of the access database.
please help me, if you know any way to create the automated import data from sql server 2008
thanks all
|
|
|
|
|
In order to sync, you must prepare a window service.
Window service will continue to update your sql server database accorting to the time interval mentioned.
|
|
|
|
|
Your requirement does not state whether the SQL database is updated from multiple access databases or your application can update both the access (single use, disconnected) and the sql database when linked to the server/network.
This dictates quite different solutions.
Never underestimate the power of human stupidity
RAH
|
|
|
|
|
If you have the time to make modifications, you can change the access database into an access project database. In access project, the data is not stored in access rather the data is stored to SQL Server. The project database just lists database objects(tables, views and stored procs)
|
|
|
|
|
SQL Server comes with "SQL Server Integration Services" which is commonly referred to as SSIS.
One commonly uses SSIS for data migration tasks. A very general outline of your solution would involve.
1. Create the migration task.
2. Schedule it so it runs repeatedly.
The following is a tutorial which which teaches SSIS basics as well as creating a data migration task.
http://technet.microsoft.com/en-us/library/ms365330.aspx[^]
|
|
|
|
|
Hi,
I have a following file names in my database.
TestDocument _ 1 _ 0
TestDocument _ Evidence
Test45
123_publish
when i am entering the Test_ in the DocumentName textbox it is forst converted to uppercase and send to the query and query has following expression which returns all record where it should not have to return any record.
please tell me the changes in the following expression.
I am using the Oracle10g database.
UPPER(DOC.ORIGINAL_FILE_NAME) like '%TEST_%'
Thanks,
Umesh Tayade .
|
|
|
|