Member 13711215 Ответов: 2

Удалить символ из datatable


Привет, как я могу удалить char из datatable. У меня есть SQL-запрос, где у меня есть нормальное значение, например, 100, но datatable напишите Мне 100,000000 hav могу ли я удалить char ,000000 - спасибо вам

Вот в чем проблема: Кер — imgbb.com[^]

Что я уже пробовал:

Public Shared Sub kusovnik(ByVal sender As Object, byval e As EventArgs) Handles MyBase.Load



        ' PRIPOJENI K DATABAZI
        Dim rs As New ADODB.Recordset
        Dim cnn As New ADODB.Connection
        Dim cmd As New ADODB.Command
        Dim rs2 As New ADODB.Recordset

        ' Otevreni spojeni
        cnn.ConnectionString = "driver={SQL Server};" & "server=000.000.000.000;uid=00;pwd=00000+;database=00000"

        Try
            cnn.Open()
            If cnn.State = 1 Then
                Assy_line_light.PripojenoPic.Show()
                Assy_line_light.PripojenoLab.Show()
                Assy_line_light.OdpojenoPic.Hide()
                Assy_line_light.OdpojenoLab.Hide()
                '' MsgBox("Spojení ověřeno ! ", , "Ověření spojení")
                ' Overeni zda pripojeni probehlo Ok
            Else
                MsgBox("Chyba v připojení k databázi.", , "Ověření připojení k databázi")
                Assy_line_light.PripojenoPic.Hide()
                Assy_line_light.PripojenoLab.Hide()
                Assy_line_light.OdpojenoPic.Show()
                Assy_line_light.OdpojenoLab.Show()
            End If
        Catch ex As Exception
            Assy_line_light.PripojenoPic.Hide()
            Assy_line_light.PripojenoLab.Hide()
            Assy_line_light.OdpojenoPic.Show()
            Assy_line_light.OdpojenoLab.Show()
            ''MsgBox("Chyba připojení k databázi!", , "Chyba")
        End Try


        ManipMat.barcodeMan = Assy_line_light.TextBox8.Text


        ' Cislo Dilu na zaklade Caroveho kodu 
        rs2 = cnn.Execute("SELECT VVyrobniOperaceKmenZbozi.RegCis From TabPrPostup LEFT OUTER JOIN TabPrikaz VVyrobniOperacePrikaz ON TabPrPostup.IDPrikaz=VVyrobniOperacePrikaz.ID LEFT OUTER JOIN TabKmenZbozi VVyrobniOperaceKmenZbozi ON TabPrPostup.dilec=VVyrobniOperaceKmenZbozi.ID WHERE TabPrPostup.BarCode = '" & ManipMat.barcodeMan & "'")


        'Cislo dilu


        'Zadany barcode


        'Podpurne tabulky pro propojeni s DB
        Dim custDA As OleDbDataAdapter = New OleDbDataAdapter()
        Dim custDS As DataSet = New DataSet
        Dim custTable As New DataTable

        custDS.Tables.Add(custTable.ToString)

        cmd.ActiveConnection = cnn
        'SQL request
        cmd.CommandText = "SELECT VKVazbyNizsiKmenZbozi.SkupZbo, VKVazbyNizsiKmenZbozi.RegCis, VKVazbyNizsiKmenZbozi.Nazev1, TabKvazby.mnozstvi
            FROM TabKvazby   
            LEFT JOIN TabCzmeny VKVazbyZmenaOdCZmeny ON TabKvazby.ZmenaOd=VKVazbyZmenaOdCZmeny.ID   
            LEFT JOIN TabCzmeny VKVazbyZmenaDoCZmeny ON TabKvazby.ZmenaDo=VKVazbyZmenaDoCZmeny.ID   
            LEFT JOIN TabKmenZbozi VKVazbyVyssiKmenZbozi ON VKVazbyVyssiKmenZbozi.ID=TabKvazby.vyssi   
            LEFT JOIN TabKmenZbozi VKVazbyNizsiKmenZbozi ON TabKvazby.nizsi=VKVazbyNizsiKmenZbozi.ID 
            WHERE(SELECT tabPostup.nazev FROM tabPostup WHERE TabPostup.dilec = VKVazbyVyssiKmenZbozi.IDKusovnik AND TabKvazby.Operace = TabPostup.Operace) = 'Balení' AND VKVazbyVyssiKmenZbozi.RegCis = (SELECT VVyrobniOperaceKmenZbozi.RegCis FROM TabPrPostup LEFT JOIN TabKmenZbozi VVyrobniOperaceKmenZbozi ON TabPrPostup.dilec = VVyrobniOperaceKmenZbozi.ID WHERE TabPrPostup.BarCode = '" & ManipMat.barcodeMan & "')"

        rs.Open(cmd)
        custDA.Fill(custTable, rs)

        'Nazvy polozek v tabulce
        custTable.Columns(0).ColumnName = "Skupina zboží"
        custTable.Columns(1).ColumnName = "Registrační číslo"
        custTable.Columns(2).ColumnName = "Název materiálu"
        custTable.Columns(3).ColumnName = "Počet kusů"



        'Naplneni nove tabulky ve formulari
        Assy_line_light.DataGridView1.DataSource = custTable

        'Ukonceni spojeni s DB
        rs.Close()
        cnn.Close()
        Assy_line_light.DataGridView1.Columns("Počet kusů").DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight


    End Sub

Jochen Arndt

Каков тип этой колонки?
Это выглядит так, как будто это плавающая точка или десятичная дробь, а 100-целое число.

Member 13711215

это плавающая точка

2 Ответов

Рейтинг:
2

RickZeeland

Попробуйте что-нибудь вроде этого:

Imports System
Imports System.Xml
Imports System.Data
				
Public Module Module1
	Public Sub Main()
        ' Get a DataTable instance from helper function.
        Dim table As DataTable = GetTable()
	Dim sql As String = "Dosage > 0" 
	Dim rows() As DataRow = table.Select(sql)
	
	For Each row As DataRow In rows
         	' Convert and write first value
		row(0) = Convert.ToInt32(row(0))
		Console.WriteLine(row(0))
        Next
    End Sub

    ''' <summary>
    ''' Helper function that creates new DataTable.
    ''' </summary>
    Function GetTable() As DataTable
        ' Create new DataTable instance.
        Dim table As New DataTable

        ' Create four typed columns in the DataTable.
	table.Columns.Add("Dosage", GetType(Decimal))
        table.Columns.Add("Drug", GetType(String))
        table.Columns.Add("Patient", GetType(String))
        table.Columns.Add("Date", GetType(DateTime))

        ' Add five rows with those columns filled in the DataTable.
        table.Rows.Add(25, "Indocin", "David", DateTime.Now)
        table.Rows.Add(50, "Enebrel", "Sam", DateTime.Now)
        table.Rows.Add(10, "Hydralazine", "Christoff", DateTime.Now)
        table.Rows.Add(21.5, "Combivent", "Janet", DateTime.Now)
        table.Rows.Add(100.0000001, "Dilantin", "Melanie", DateTime.Now)
        Return table
    End Function
	
End Module

Вы также можете увидеть это в действии здесь: Онлайн-компилятор C# | .NET Fiddle[^]


Member 13711215

Привет, я так и делаю. VB.NET можете ли вы помочь мне с реализацией моего кода?

Member 13711215

Привет, не функция.

Рейтинг:
1

Jochen Arndt

Вы должны выполнить форматирование при отображении значений в вашем компьютере. DataGridView. Вы можете установить общий формат:

DataGridView1.Columns("Počet kusů").DefaultCellStyle.Format = "F0"
Видеть Как отформатировать данные в элементе управления Windows Forms DataGridView | Microsoft Docs[^Но это будет форматировать все ячейки одинаково (не показывать никаких цифр после десятичной точки с "F0").

Если вам нужны разные форматы для разных значений, вы должны создать обработчик событий. Видеть Как настроить форматирование данных в элементе управления Windows Forms DataGridView | Microsoft Docs[^]. Пример кода предназначен для C#, но он аналогичен для всех остальных .Чистые языки.