Member 12703629 Ответов: 2

Может ли кто-нибудь написать мой VB-код на C#


всем привет
у меня есть VB код для заполнения древовидного представления database.my код есть
If rec2.EOF = False And rec2.BOF = False Then
    Do While rec2.EOF = False
        If dept1 <> rec2.Fields(0) Then
            d1 = d1 + 1
            TreeView1.Nodes.Add , , "*" & CStr(rec2.Fields(0)) & "*", rec2.Fields(0)
            If UCase(rec2.Fields(2)) = "ONE" Then
                TreeView1.Nodes.Add "*" & rec2.Fields(0) & "*", tvwChild, "*" & CStr(rec2.Fields(3)) & "*", Left(rec2.Fields(1), 3) & " " & rec2.Fields(4)
                one1 = rec2.Fields(3)
            ElseIf UCase(rec2.Fields(2)) = "TWO" Then
                TreeView1.Nodes.Add "*" & one1 & "*", tvwChild, "*" & CStr(rec2.Fields(3)) & "*", Left(rec2.Fields(1), 5) & " " & rec2.Fields(4)
                two1 = rec2.Fields(3)
            ElseIf UCase(rec2.Fields(2)) = "THREE" Then
                TreeView1.Nodes.Add "*" & two1 & "*", tvwChild, "*" & CStr(rec2.Fields(3)) & "*", Left(rec2.Fields(1), 7) & " " & rec2.Fields(4)
                three1 = rec2.Fields(3)
            ElseIf UCase(rec2.Fields(2)) = "FOUR" Then
                TreeView1.Nodes.Add "*" & three1 & "*", tvwChild, "*" & CStr(rec2.Fields(3)) & "*", Left(rec2.Fields(1), 9) & " " & rec2.Fields(4)
                four1 = rec2.Fields(3)
            ElseIf UCase(rec2.Fields(2)) = "FIVE" Then
                TreeView1.Nodes.Add "*" & four1 & "*", tvwChild, "*" & CStr(rec2.Fields(3)) & "*", Left(rec2.Fields(1), 11) & " " & rec2.Fields(4)
                five1 = rec2.Fields(3)
            End If
            dept1 = rec2.Fields(0)
        Else
            If UCase(rec2.Fields(2)) = "ONE" Then
                TreeView1.Nodes.Add "*" & rec2.Fields(0) & "*", tvwChild, "*" & CStr(rec2.Fields(3)) & "*", Left(rec2.Fields(1), 3) & " " & rec2.Fields(4)
                one1 = rec2.Fields(3)
            ElseIf UCase(rec2.Fields(2)) = "TWO" Then
                TreeView1.Nodes.Add "*" & one1 & "*", tvwChild, "*" & CStr(rec2.Fields(3)) & "*", Left(rec2.Fields(1), 5) & " " & rec2.Fields(4)
                two1 = rec2.Fields(3)
            ElseIf UCase(rec2.Fields(2)) = "THREE" Then
                TreeView1.Nodes.Add "*" & two1 & "*", tvwChild, "*" & CStr(rec2.Fields(3)) & "*", Left(rec2.Fields(1), 7) & " " & rec2.Fields(4)
                three1 = rec2.Fields(3)
            ElseIf UCase(rec2.Fields(2)) = "FOUR" Then
                TreeView1.Nodes.Add "*" & three1 & "*", tvwChild, "*" & CStr(rec2.Fields(3)) & "*", Left(rec2.Fields(1), 9) & " " & rec2.Fields(4)
                four1 = rec2.Fields(3)
            ElseIf UCase(rec2.Fields(2)) = "FIVE" Then
                TreeView1.Nodes.Add "*" & four1 & "*", tvwChild, "*" & CStr(rec2.Fields(3)) & "*", Left(rec2.Fields(1), 11) & " " & rec2.Fields(4)
                five1 = rec2.Fields(3)
            End If
            dept1 = rec2.Fields(0)
        End If
        rec2.MoveNext
    Loop
End If
End Sub


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

treeview не заселяется plese кто нибудь помогите мне

Dave Kreskowiak

"Это не работает" - не очень хорошее описание проблемы. Что же происходит? Есть ли какая-то ошибка?

Нет, мы не собираемся преобразовывать ваш код для вас. Существует множество онлайн-сайтов преобразования кода, которые преобразуют куски кода для вас. Но если VB.NET код не работает, версия C# тоже не будет работать.

F-ES Sitecore

Похоже, VB6, а не VB.net

Dave Kreskowiak

ООО "ЮК"! Хуже того.

CHill60

Раздел "Что я пробовал:" предназначен для того, чтобы вы поместили код C#, который вы пробовали. Мы не знаем, почему treeview не заполняется, если мы не можем видеть ваш код

[no name]

VB6 в C# - это не преобразование. Это называется переписать его с нуля.

gggustafson

Если это домашнее задание, то вам нужно обратиться за помощью к своему инструктору. Если нет, посмотрите на проблему как на проблему программирования на C#, используя VB-код в качестве дизайна. Преобразовав код самостоятельно, вы получите представление о языке C#. Кроме того, вы увеличите свои знания о совместимых языках. Вы находитесь в среде Visual Studio? Если это так, сначала исправьте любые проблемы в коде VB, пока у вас не будет чистой компиляции. Затем вы можете произвести преобразование. Однако обратите внимание, что VB и C# полностью совместимы в Visual Studio. Вызывающие интерфейсы одинаковы. хороший замок.

2 Ответов

Рейтинг:
1

Maciej Los

Как говорили мои коллеги: нужно переписывать код с нуля. Это довольно просто, если вы знаете, что делает приведенный выше код.

Есть некоторые используемые объекты, такие как наборы записей (подчеркнуто):

If rec2.EOF = False And rec2.BOF = False Then
    Do While rec2.EOF = False


Даже если вы можете создать объект набора записей (Как открыть подключение ADO и объекты наборов записей в Visual С# .Чистая[^]) вы не должны этого делать, потому что это довольно старая технология.

Я бы рекомендовал использовать ADO.NET[^] для подключения к базе данных. Тогда вы сможете использовать Command для извлечения данных в Reader Вы можете перебирать данные, хранящиеся в считывателе, чтобы заполнить TreeView. Поскольку вы не указали, какую базу данных используете, я не могу предоставить более подробную информацию.

Для получения более подробной информации, пожалуйста, смотрите:
ADO.NET примеры кода[^]


Рейтинг:
0

OriginalGriff

Даже не пытайтесь: перепишите его с нуля, используя вместо этого функциональность кода VB6 в качестве спецификации. C# использует .NET framework и его элементы управления (а также свойства и методы, на которые они полагаются) не совпадают с эквивалентом VB6.

Если вы написали код VB6, то вам все равно нужно понимать C#, чтобы заставить его работать в более широком контексте приложения .NET, а если нет, то найдите его .Чистый связанный код, который делает ту же самую работу вместо этого!