Solved

Insert Double value via SQL to database

Posted on 2012-03-28
10
1,709 Views
Last Modified: 2012-03-29
Hi guys,


I am using vb.net and access 2010 database.

I am using an insert statement to send a double value from a grid-view cell to an access database.

The cell contains a double value.

The problem is i am able to send the values with a decimal next to every number which has two zeros following it:

Example:

10.00 , 25.00 , 100.00 (i.e. when i input a number with the decimal point and the following numbers with two consecutive zeros, there is no problem in sending the values to the database using the sql.)

but when i put in any number other than the two zeros after the decimal point such as 10.12, 10.52, 52.41, then i get the following error from the try catch block.

number of query values and destination fields are not the same

this is the way i am using the sql:

dim dblCashIn as double


sql = insert into tblBank (cashInCome) values (dblCashIn);

and i use the executenonquery command to insert the data into the database.

Thanks in advance.
0
Comment
Question by:baabaa_nl
  • 3
  • 3
  • 2
  • +2
10 Comments
 
LVL 83

Expert Comment

by:CodeCruiser
Comment Utility
What is the locale/culture of the computer?
0
 

Author Comment

by:baabaa_nl
Comment Utility
dutch and english
0
 
LVL 6

Expert Comment

by:Patrick Tallarico
Comment Utility
And the column type of the MS Access table is set to double also???  For instance it wouldn't work if it was set to a number of type Integer...
0
 

Author Comment

by:baabaa_nl
Comment Utility
it was set to currency from the beginning
0
 
LVL 83

Expert Comment

by:CodeCruiser
Comment Utility
Is the separator , or . on the system locale?
0
How to improve team productivity

Quip adds documents, spreadsheets, and tasklists to your Slack experience
- Elevate ideas to Quip docs
- Share Quip docs in Slack
- Get notified of changes to your docs
- Available on iOS/Android/Desktop/Web
- Online/Offline

 

Author Comment

by:baabaa_nl
Comment Utility
at first it was ,

but then i changed it to engish keyboard, but even after that it didnt work
0
 
LVL 83

Accepted Solution

by:
CodeCruiser earned 500 total points
Comment Utility
Try enclosing the value in single quotes

sql = insert into tblBank (cashInCome) values ('dblCashIn');
0
 
LVL 6

Expert Comment

by:Patrick Tallarico
Comment Utility
As long as the column is set to the proper amount of digits to the right of the decimal point, you should be able to insert the values, can you set the variable as currency from the beginning?  If so, it should work for you then.

If not, then perhaps you need to convert the double values to currency first...
The following link has some info on those functions.
http://office.microsoft.com/en-us/access-help/type-conversion-functions-HA001229018.aspx
0
 
LVL 74

Expert Comment

by:käµfm³d 👽
Comment Utility
Have you considered creating a parameterized query? It should take care of converting the value for Access on your behalf.

For example:

Using con As New OleDbConnection("[your con string]")
    Using cmd As new OleDBCommand("insert into tblBank (cashInCome) values (?)", con)
        cmd.Parameters.AddWithValue("@someArbitraryName", dblCashIn)

        con.Open()
        cmd.ExecuteNonQuery()
    End Using
End Using

Open in new window


For OleDB, you use a question mark as a placeholder for each parameter you want to add. When you add parameters to the Command object, add them in the order they would naturally appear within the query (left-to-right).
0
 
LVL 49

Expert Comment

by:Gustav Brock
Comment Utility
The accepted answer cannot be the solution.
It will fail trying to insert the string "dblCashIn" into a the numeric field cashInCome.

You must insert a string expression in the SQL statement, and Str is exactly for this because it always converts the decimal char to a dot:

sql = "insert into tblBank (cashInCome) values (" & Str(dblCashIn) & ");"

/gustav
0

Featured Post

How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

Join & Write a Comment

When you are entering numbers in a speadsheet, and don't remember what 6×7 is, you just type “=6*7" instead. It works in every cell! This is not so in Access. To enter the elusive 42 in a text box, you have to find a calculator, and then copy the re…
It was really hard time for me to get the understanding of Delegates in C#. I went through many websites and articles but I found them very clumsy. After going through those sites, I noted down the points in a easy way so here I am sharing that unde…
Get people started with the utilization of class modules. Class modules can be a powerful tool in Microsoft Access. They allow you to create self-contained objects that encapsulate functionality. They can easily hide the complexity of a process from…
Learn how to number pages in an Access report over each group. Activate two pass printing by referencing the pages property: Add code to the Page Footers OnFormat event to capture the pages as there occur for each group. Use the pages property to …

744 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

18 Experts available now in Live!

Get 1:1 Help Now