C # SqlDataAdapter превращает все значения в столбце десятичной дроби в ноль - PullRequest
1 голос
/ 12 августа 2011

Я использую SqlDataAdapter для заполнения DataSet из таблицы SQLServer. Все столбцы заполнены правильно, кроме столбца «Транзакция», который является десятичным типом в базе данных. Все эти значения становятся 0.0.

код:

using (SqlConnection dbconn = new SqlConnection (connection_string)) {
            SqlDataAdapter adapter = new SqlDataAdapter (query, dbconn);
            exposureSequence = new DataSet ();
            adapter.Fill (exposureSequence, "ExposureSequence");
        }

Этот код

            foreach(DataRow r in exposureSequence.Tables["ExposureSequence"].Rows){
            Console.WriteLine(r["TransactionAmount"] + ", ");
        }

печать

0.0000, 
0.0000, 
0.0000,
...

Но если я сделаю это:

using (IDataReader reader = dbcmd.ExecuteReader()) {
                    while(reader.Read()){
                        //int ActionClientID = (int) reader["ActionClientID"];
                        Decimal TransactionAmount = (Decimal) reader["TransactionAmount"];
                        Console.WriteLine(TransactionAmount);
                    }

Мой вывод:

164.4950
164.4950
164.4950
...

Почему адаптер. Заполните, установив значения TransactionAmount в 0,000?

1 Ответ

0 голосов
/ 12 августа 2011

Я не вижу разницы между двумя версиями кода, который вы разместили.Вы должны получить те же результаты.Если вы выполняете тот же запрос с помощью dataReader или dataAdapter, разница в том, как они выполняются, а не в результатах, которые вы получаете.Используете ли вы тот же запрос для выполнения?Если вы это сделаете, я думаю, что проблема, возможно, где-то еще (а не в разнице двух версий).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...