Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Перевод C# to VB.NET, Проблема с синтаксисом(VB.NET) 
V
    Опции темы
thomas
Дата 7.7.2007, 11:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доцент... почти
***


Профиль
Группа: Завсегдатай
Сообщений: 1385
Регистрация: 3.10.2006
Где: " Сказочное королевство"

Репутация: 6
Всего: 65



Приветствую всех.
Даже немного стыдно спрашивать, но ...
Переписываю вот такую функцию с C#
Код

public String[] GetExcelSheetNames()
            {                
                System.Data.DataTable dt = null;
                try
                {
                    cn.Open();
                    
                    // Get the data table containing the schema
                    dt = cn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
     
                    if(dt == null)
                    {
                        return null;
                    }

                    String[] excelSheets = new String[dt.Rows.Count];
                    int i = 0;

                    // Add the sheet name to the string array.
                    foreach(DataRow row in dt.Rows)
                    {
                        string strSheetTableName = row["TABLE_NAME"].ToString();
                        excelSheets[i] = strSheetTableName.Substring(0,strSheetTableName.Length-1); 
                        i++;
                    }
                    
                    
                    return excelSheets;
                }
                catch(Exception ex)
                {
                    throw new Exception(ex.Message) ;
                }
                finally
                {
                    // Clean up.
                    cn.Close();                
                }
            }

на VB.NET
Код

Public Function GetExcelSheetNames() As String()
        Dim dt As DataTable
        dt = Nothing
        Try
            con.Open()
            dt = con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, Nothing)
            If dt = Nothing Then 'ЗДЕСЬ РУГАЕТСЯ, не нравиться оператор "=".    Wat is probleem???
                Return Nothing
            End If
            Dim excelSheet() As String
            Dim size As Integer = dt.Rows.Count
            excelSheet = New String(size) {}
            Dim i As Int16 = 0
            For Each row As DataRow In dt.Rows
                Dim strSheetTableName As String = row("TABLE_NAME").ToString()
                excelSheet(i) = strSheetTableName.Substring(0, strSheetTableName.Length - 1)
                i += 1
            Next
            Return excelSheet
        Catch ex As Exception
            Throw New Exception(ex.Message)
        Finally
            con.Close()
        End Try
    End Function


null в C# соответствуюет Nothing в VB.NET

Так почему он не понимает если я спрашиваю про таблицу. 

Заранее спасибо. 


--------------------
Крепко жму горло, искренне ваш Thomas. (С)vingrad
Некоторые сорта флоры буквально за одно мгновение превращают нас в фауну!
Проблемы негров шерифа не волнуют.
PM MAIL   Вверх
tol05
Дата 7.7.2007, 12:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1632
Регистрация: 21.12.2006
Где: Харьков

Репутация: 63
Всего: 170



А вот так? 
Код

If dt Is Nothing Then...




--------------------
На хорошей работе и сны хорошие снятся.
PM MAIL   Вверх
-ser-
Дата 7.7.2007, 12:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 344
Регистрация: 1.2.2005

Репутация: 5
Всего: 13



= сравнивает числовые значения. попробуй Is/IsNot. 
посмотри Comparison Operators in Visual Basic.
у тебя компилятор пытается присвоить null таблице и не понимает причем тогда тут if.


--------------------
"Тонкая, однако, работа." 
PM MAIL ICQ   Вверх
thomas
  Дата 7.7.2007, 12:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доцент... почти
***


Профиль
Группа: Завсегдатай
Сообщений: 1385
Регистрация: 3.10.2006
Где: " Сказочное королевство"

Репутация: 6
Всего: 65



tol05
-ser-

Спасибо за отклики!

Да-с, ступил. Ведь подумал же про Is.
Вот что значит, полгода не писать вообще и в VB в частности. 


--------------------
Крепко жму горло, искренне ваш Thomas. (С)vingrad
Некоторые сорта флоры буквально за одно мгновение превращают нас в фауну!
Проблемы негров шерифа не волнуют.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0702 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.