Как изменить числовой формат в Visual Basic?

Как насчет ... Извините, у меня проблема с сохранением значения в базе данных из Visual Basic, и происходит то, что я вычисляю значение, и результатом является десятичное число, но возвращаемое число отделяется Запятая и сохранение ее в базу данных дает мне ошибку. То, что я хотел бы, это отправить значение, но с разделением десятичных знаков по точкам. Пожалуйста, помогите!

Это код:

Это код в таблице:

create table Credito(
    id_credito int primary key identity,
    id_cliente int,
    id_Usuario int, 
    concepto varchar(40) not null,
    descripcion varchar(150) not null,
    cantidad_credito float not null,
    fecha_inicio date not null,
    tipo_cuota varchar(10) not null,
    fecha_fin date not null,
    cantidad_cuotas int not null,
    cantidad_mensual float not null,
    estado_credito char(1) not null,
    estado_mora int not null,
    numero_credito int,
    saldo float,
    check (estado_credito='C' or estado_credito='P'),
    check (estado_mora=1 or estado_mora=0),
    check (tipo_cuota='quincenal' or tipo_cuota='mensual'),
    constraint fk_ic foreign key(id_cliente) references Cliente,
    constraint fk_iu foreign key(id_Usuario) references Usuario
);

Это код Класс данных, в котором находятся функции

Public Class Datos
    Dim conex As New SqlConnection
    Dim conectar As String = "Data Source=Desktop-sigtqcf\myserver;Initial Catalog=ProyectoFinal2;Integrated Security=True"
    Public Sub New()
        Try
            conex.ConnectionString = conectar
        Catch ex As SqlException
            MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
        End Try
    End Sub

//Esta es la función que utilizo para actualizar los registros
    Public Sub Actualizar(tabla As String, campos_valores As String, condicion As String)
        Try
            conex.Open()
            Dim cmd As New SqlCommand("update " & tabla & " set " & campos_valores & " where " & condicion, conex)
            cmd.ExecuteNonQuery()
        Catch ex As Exception
            MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
        Finally
            conex.Close()
        End Try
    End Sub
End Class

И это функция, с помощью которой я обновляю данные, нажимая кнопку

Public Class Pagos
    Dim obj as New Datos
    Public Sub ActualizarPago()
        If meses >= 1 Then
            cantMora = meses * precioMora **PrecioMora equivale a 2.5**
            tabla = "Credito"
            campos_valores = "Saldo=" & cantMora + saldoPend
            condicion = "numero_credito=" & numero_factura
            obj.Actualizar(tabla, campos_valores, condicion)
        End If
    End Sub
End Class

obj - это экземпляр класса, в котором у меня есть функции для управления данными ...

Обновление - это функция, которую я использую, и я передаю в качестве параметров имя таблицы, которую я хочу обновить, в поля и значения, которые они будут иметь, и условие, которое должно быть выполнено для обновления данных.

При попытке вставить значение, которое дает мне ошибку, видно, что он интерпретирует его так, как будто он вставляет два разных значения, потому что оно разделено запятой ...

Переменные месяцев , cantMora , таблица , значения полей , условие объявляются в модуле.

0
задан 17.01.2017, 13:03
2 ответа

Хорошие dГ-схвати, что ты должен делать, состоит в том, чтобы превращать в String float и despuГ©s, это делает Replace

Casteo:

AquГ - оставил тебе функции для casteo в Visual Basic

Повторно нравится:

AquГ - оставил тебе пример replace.

Dim oldString As String = "32,3"
' Returns "Shipping List".
Dim newString As String = Replace(TestString, ",", ".")

Тогда, что harГ-эксперт состоит в том, чтобы заменять запятую точкой.

1
ответ дан 24.11.2019, 12:44
  • 1
    это плохая идея... доказательство в setear правильная культура в твой app и не tendr и # 225; s, что делать этих повторно нравится. – JohnTrack 05.11.2016, 14:39
  • 2
    Привет, благодаря всем из-за Вашей помощи... Но уже решение и # 233; формы, сходной с формой примера replace... И не s и # 233; которого способ приспосабливать это в это культуры app. – Daniel 05.11.2016, 19:45

как кажется, твоя проблема имеет общее с культурой твоего приложения. выбор, - когда ты переместишь информацию в числовой (он применяется для всех типов) ты это делаешь с parse и кроме того добавляешь культуру к твоему parse... сейчас окончательный выбор (и только, если твоя опора не мультикультура), чтобы не быть висящим на культуре, в любое время это setearle культура, в которой ты нуждаешься в трэд настоящего выполнения твоего app

0
ответ дан 24.11.2019, 12:44