Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / C# запись значения double в БД Access / 8 сообщений из 8, страница 1 из 1
31.01.2013, 18:12
    #38132772
Marchello753951
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
C# запись значения double в БД Access
Никак не могу заставить работать следующий код.

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.OleDb;
using System.Globalization;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            OleDbConnection myOleDbConnection = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\\DB_Sklad\\DB_Sklad.accdb");// создаем объект OleDbConnection для соединения с Бд и передаем его конструктору строку с параметрами подключения
            myOleDbConnection.Open();

            double Price;
            Price = 12.34;
            OleDbCommand myOleDbCommand = myOleDbConnection.CreateCommand();
            try
            {
                myOleDbCommand.CommandText = "INSERT INTO Table (Price) Values(" + Price + ")";
                OleDbDataReader myOleDbDataReader = myOleDbCommand.ExecuteReader();
                myOleDbDataReader.Read();
                myOleDbDataReader.Close()
                myOleDbConnection.Close();
            }
            catch (Exception error)
            {
                Console.WriteLine(error.ToString());
            }
            Console.WriteLine(Price);
            Console.ReadKey();
        }
    }
}



выдает ошибку
Код: powershell
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
System.Data.OleDb.OleDbException (0x80040E14): Не совпадает число значений запро
са и число результирующих полей.
   at System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(OleDbHResul
t hr)
   at System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARA
MS dbParams, Object& executeResult)
   at System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult)
   at System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Ob
ject& executeResult)
   at System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behav
ior, String method)
   at System.Data.OleDb.OleDbCommand.ExecuteReader(CommandBehavior behavior)
   at System.Data.OleDb.OleDbCommand.ExecuteReader()
   at ConsoleApplication1.Program.Main(String[] args) in C:\Users\***\ConsoleApplication1\Program.cs:line 29
12,34



Проблема в разделителе переменной double Price, Нужна ваша помощь, помогите пож-та...

если переменная Price = 12 ; то работает т.е. без разделителей

Региональные параметры не влияют (((
...
Рейтинг: 0 / 0
31.01.2013, 18:17
    #38132787
.
.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
C# запись значения double в БД Access
...
Рейтинг: 0 / 0
01.02.2013, 11:28
    #38133359
The_Immortal
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
C# запись значения double в БД Access
Marchello753951,
Marchello753951Региональные параметры не влияют (((
Хм, действительно?

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.OleDb;
using System.Globalization;
using System.Threading;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            OleDbConnection myOleDbConnection = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\\DB_Sklad\\DB_Sklad.accdb");// создаем объект OleDbConnection для соединения с Бд и передаем его конструктору строку с параметрами подключения
            myOleDbConnection.Open();

            CultureInfo ci = (CultureInfo)Thread.CurrentThread.CurrentCulture.Clone();
            ci.NumberFormat.NumberDecimalSeparator = ".";
            Thread.CurrentThread.CurrentCulture = ci;

            double Price;
            Price = 12.34;
            OleDbCommand myOleDbCommand = myOleDbConnection.CreateCommand();
            try
            {
                myOleDbCommand.CommandText = "INSERT INTO Table (Price) Values(" + Price + ")";
                myOleDbCommand.ExecuteNonQuery();
            }
            catch (Exception error)
            {
                Console.WriteLine(error.ToString());
            }
            finally
            {
                myOleDbConnection.Close();
            }
            Console.WriteLine(Price);
            Console.ReadKey();
        }
    }
}





ЖирикЭтот не знает что такое параметры..



Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
        static void Main(string[] args)
        {
            OleDbConnection myOleDbConnection = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\\DB_Sklad\\DB_Sklad.accdb");// создаем объект OleDbConnection для соединения с Бд и передаем его конструктору строку с параметрами подключения
            myOleDbConnection.Open();

            double Price;
            Price = 12.34;
            OleDbCommand myOleDbCommand = myOleDbConnection.CreateCommand();
            try
            {
                myOleDbCommand.CommandText = "INSERT INTO Table (Price) Values(?)";
                //myOleDbCommand.Parameters.Add("", OleDbType.Double).Value = Price;
                myOleDbCommand.Parameters.AddWithValue("", Price);
                myOleDbCommand.ExecuteNonQuery();
            }
            catch (Exception error)
            {
                Console.WriteLine(error.ToString());
            }
            finally
            {
                myOleDbConnection.Close();
            }
            Console.WriteLine(Price);
            Console.ReadKey();
        }
    }
}
...
Рейтинг: 0 / 0
07.02.2013, 14:48
    #38141826
Marchello753951
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
C# запись значения double в БД Access
The_Immortal,
Спасибо, выручил...
...
Рейтинг: 0 / 0
07.02.2013, 16:13
    #38142015
newDealer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
C# запись значения double в БД Access
Marchello753951,

Лучше послушать гвеста)
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
22.06.2015, 20:35
    #38990103
TechCom
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
C# запись значения double в БД Access
The_Immortal, слушай друг, а ты не знаешь как добавить число double не в одно поле, а если полей несколько?
...
Рейтинг: 0 / 0
22.06.2015, 23:06
    #38990168
Axeleron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
C# запись значения double в БД Access
TechCom, OMG...
...
Рейтинг: 0 / 0
22.06.2015, 23:09
    #38990172
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
C# запись значения double в БД Access
TechComа если полей несколько?
несколько параметров передать, не?
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / C# запись значения double в БД Access / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]