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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Работа с String[] 
V
    Опции темы
DZeus
  Дата 20.3.2008, 16:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Задача: Разбить DataReader по строкам, строки записать в массив строк...
Вопрос: Как правильно задать массив String[] если заранее не известен его размер?
Код


  public void createSqlStr(OdbcDataReader dr) 
        {
            String[] sqlStr ;
            
            String theString;
          
         
            while (dr.Read()) 
            {
                theString = "INSERT INTO patient (" +
                 "recid," +
                 "id_lpu," +
                 "Fname," +
                 "LName," +
                 "MName," +
                 "sn_insuarance," +
                 "date_of_birth," +
                 "pfr_code," +
                 "sex," +
                 "id_socialState," +
                 "id_insuaranceOrganization" +
                 ") VALUES (" +
                 dr["RECID"] + "," +
                 dr["MCOD"] + ",'" +
                 dr["FAM"] + "','" +
                 dr["IM"] + "','" +
                 dr["OT"] + "','" +
                 dr["SN_POL"] + "'," +
                 dr["DR"] + ",'" +
                 dr["SS"] + "'," +
                 dr["W"] + "," +
                 dr["SP"] + "," +
                 dr["Q"] + ")";

//Далее хочу theString запихать в массив sqlStr
             }

        }



 smile 

Это сообщение отредактировал(а) DZeus - 20.3.2008, 16:57
PM MAIL   Вверх
Rififi
Дата 20.3.2008, 16:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1254
Регистрация: 9.3.2008

Репутация: нет
Всего: 36



Размерность массива нельзя переопределить после создания
используй List<T>

нет, вру. в 2.0 уже можно. но это явно не тот случай.

Это сообщение отредактировал(а) Rififi - 20.3.2008, 16:38
PM MAIL   Вверх
DZeus
Дата 20.3.2008, 16:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



А можно ли как нить узнать сколько в DataReader записей? Есть св-во FieldCount, но это столбцы.
PM MAIL   Вверх
Rififi
Дата 20.3.2008, 17:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1254
Регистрация: 9.3.2008

Репутация: нет
Всего: 36



DZeus
нет, естессно. Reader тащит из БД записи до тех пор пока есть чего тащить.
для подсчёта количества записей можно воспользоваться агрегатной функцией count в sql
PM MAIL   Вверх
Voyager
Дата 20.3.2008, 18:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 3
Всего: 18



Можно так:
Код

String[] sqlStr ;            
String theString;

ArrayList A = new ArrayList();
while (dr.Read()) 
{
    theString = ...;
    A.Add(theString);
}
sqlStr = (string[])A.ToArray(typeof(string));

PM   Вверх
vponomarov
Дата 20.3.2008, 18:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 2
Всего: 12



по-моему лучше сразу отказаться от String[] в пользу List<String>.
если же использование String[] обязательно,то можно предварительно сделать select count()... для определения количества строк.
ну в общем подвел итог вроде бы smile 


--------------------
user posted image
user posted image
PM MAIL ICQ   Вверх
DZeus
Дата 21.3.2008, 09:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Всем спасибо буду юзать List<String>
PM MAIL   Вверх
QryStaL
Дата 21.3.2008, 11:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Intellectual feast
**


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

Репутация: 10
Всего: 32



Цитата(Rififi @  20.3.2008,  16:37 Найти цитируемый пост)
Размерность массива нельзя переопределить после создания


Array.Resize Generic Method 

Changes the size of an array to the specified new size. 


--------------------
I don't need a reason being who I am...
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

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


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

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


 




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


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

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