powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Приведение типов C# WinForms to MSSQL
8 сообщений из 8, страница 1 из 1
Приведение типов C# WinForms to MSSQL
    #39240868
m0hn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день, друзья.
Возникла проблема с приведением типов.
Имеем MSSQL 2008 R2. Есть хранимая процедура:
Код: sql
1.
2.
3.
4.
ALTER PROCEDURE [dbo].[sp_charge_peni]
@OrderId dbo.DT_ID,
@OutParamStr dbo.DT_PARAMSTR out
AS


где:
Код: sql
1.
CREATE TYPE [dbo].[DT_ID] FROM [int] NOT NULL


Причем размер 9 байт!!! т.е. превышает обычный размер int 4 байта.
Мне необходимо из программы на C# вызывать эту процедуру, но я не могу запихнуть вместо int в программе uint хотя бы.
Вот этот кусок работает.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
using (var sqlConn = new SqlConnection("строка подключения"))
            {
                var sqlCmd = new SqlCommand("sp_charge_peni", sqlConn);
                sqlCmd.CommandType = CommandType.StoredProcedure;
                sqlCmd.Parameters.AddWithValue("@OrderId", Convert.ToInt32(textBox1.Text));
                sqlCmd.Parameters.AddWithValue("@OutParamStr", ""); 

                sqlConn.Open();
                using (SqlDataReader dr = sqlCmd.ExecuteReader())
                {
                    while (dr.Read())
                    {
                        string stringColumn = dr.GetString(dr.GetOrdinal("OutParamStr"));
                    }
                }
            }


Но если заменить
Код: sql
1.
Convert.ToInt32(textBox1.Text)

на
Код: sql
1.
Convert.ToUInt(textBox1.Text)

вылазит ошибка с проблемой приведения типов. Значения надо передавать такие: 28406182012
Что делать?
...
Рейтинг: 0 / 0
Приведение типов C# WinForms to MSSQL
    #39240869
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m0hn28406182012такое число никак в UInt32 не влезет, только в (U)Int64
...
Рейтинг: 0 / 0
Приведение типов C# WinForms to MSSQL
    #39240872
m0hn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro, в БД данные хранятся в типе dbo.DT_ID размера 9 байт, который основан на int
вот тут проблема, мне надо как-то передавать значения в хранимку :(
...
Рейтинг: 0 / 0
Приведение типов C# WinForms to MSSQL
    #39241023
AlexanP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
m0hn мне надо как-то передавать значения в хранимку :(


Мне иногда кажется, что лучше не "CommandType.StoredProcedure", а просто передавать строку,
в которой "exec sp_charge_peni @OrderId="+Convert.ToInt64(textBox1.Text)
...
Рейтинг: 0 / 0
Приведение типов C# WinForms to MSSQL
    #39241029
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlexanPm0hn мне надо как-то передавать значения в хранимку :(


Мне иногда кажется, что лучше не "CommandType.StoredProcedure", а просто передавать строку,
в которой "exec sp_charge_peni @OrderId="+Convert.ToInt64(textBox1.Text)

Ужас....
...
Рейтинг: 0 / 0
Приведение типов C# WinForms to MSSQL
    #39241030
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Prom0hn28406182012такое число никак в UInt32 не влезет, только в (U)Int64
или в decimal
...
Рейтинг: 0 / 0
Приведение типов C# WinForms to MSSQL
    #39241093
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
m0hn
Код: sql
1.
Convert


Это вообще лишнее. Можно прямо


Код: sql
1.
sqlCmd.Parameters.AddWithValue("@OrderId", textBox1.Text);



Все равно на сервер в текстовом виде уходит
...
Рейтинг: 0 / 0
Приведение типов C# WinForms to MSSQL
    #39241261
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2Все равно на сервер в текстовом виде уходит
да ты шо?
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Приведение типов C# WinForms to MSSQL
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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