Member 10230348 Ответов: 3

Как мне разделить строку на циклы в ASP.NET с#


строка rowValue = строка["TrainNo"].Метод toString();


им хранение стоимость железнодорожного нет в rowvalue и хотите поделить rowvalue в петли, чтобы найти точное нет плз помогите как можно скорее

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

string rowValue = row["TrainNo"].ToString();

User 7429338

Каков формат TrainNo и каков ожидаемый результат? Код, который вы опубликовали, не имеет отношения к этому вопросу.

Member 10230348

trainno datatype-это varchar, и я хочу, чтобы значение, входящее в rowvalue, было разделено в цикле

Member 10230348

строка rowValue = строка["TrainNo"].Метод toString();

string[] splitString = rowValue.Расщеплять(',');
foreach (string str в splitString)
{
если (str == ("0"))
{
SoundPlayer sd = новый SoundPlayer();
sd.SoundLocation = Сервер.MapPath("~/SoundWave/0.wav");
sd.PlaySync();
}


вот код я хочу разделить значение в цикле у меня есть код но его Оли поддерживает запятая я хочу взять всю строку и разделить на 10000

User 7429338

Я понятия не имею, что ты пытаешься сказать, Извини.

Member 10230348

кк

Member 12270013

вы имеете в виду, что строка должна быть зациклена для проверки каждого символа в ней? и на основе этого персонажа вы будете выполнять некоторые операции. Это то, что ты ищешь?

Кроме того, вы можете предоставить базовую строку, которая у вас есть в строке[TrainNo], и вывод/решение, которое вы хотите получить в результате после деления.

Member 10230348

да именно так

Maciej Los

Можете ли вы поделиться образцами данных и ожидаемыми результатами?

Member 10230348

это мои данные и я получаю 12345 в rowvalue из базы данных и я хочу разделить rowvalue на 10000

Member 10230348

строка rowValue = строка["TrainNo"].Метод toString();

string[] splitString = rowValue.Расщеплять(',');
foreach (string str в splitString)
{
если (str == ("0"))
{
SoundPlayer sd = новый SoundPlayer();
sd.SoundLocation = сервер.MapPath("~/SoundWave/0.wav");
sd.PlaySync();
}

3 Ответов

Рейтинг:
23

User 7429338

Если вы хотите превратить его в двойник, а затем разделить на 10000, вы можете сделать это:

if (!double.TryParse(rowValue, out double value)) {
  // Invalid format.
}
value /= 10000;


Member 10230348

может типа U плз в подробностях, потому что, я не fimiliar с петель помогите плз

Рейтинг:
2

OriginalGriff

Хотя решение Таддеуса Джонса будет работать, сделайте себе одолжение: не храните данные в Столбцах VARCHAR или NVARCHAR, если это не настоящая строка. Храните данные в соответствующих типах данных: целые числа в Столбцах INT, числа с плавающей запятой в Столбцах FLOAT, дата в DATE, DATETIME или DATETIME2. Это экономит много проблем позже и делает ваш код намного проще, когда вы хотите работать с данными, потому что столбец не может содержать недопустимые данные. Если у вас есть целочисленный столбец TrainNumber, то ничто не может поместить туда "Jaipur" или "12K", что приведет к сбою вашего кода, потому что это не число.
Тогда все, что вам нужно сделать, это

int rowValue = (int) row["TrainNo"];
И вы уходите...


Member 10230348

см. Мой поезд не тип данных имеет тип varchar, потому что я 'м хранение в int и char в этом столбце так thts г, им становится toruble

OriginalGriff

Точно. Если у вас есть число, не храните его в строковом столбце: и определенно не храните его в строковом столбце с подлинно строковыми данными!
Подумайте об изменении столбца на два столбца: числовую часть, хранящуюся, вероятно, в INT, и строковую часть в NVARCHAR - вы можете добавить вычисляемый столбец, чтобы вернуть комбинацию, если она нужна другому коду, но это означает, что вы можете работать с нужным битом немедленно (и порядок сортировки также работает правильно!)

Хотя можно разделить числовую и текстовую части, это очень трудно сделать, когда вам нужно "просто число", особенно если данные в столбце не обязательно имеют определенный формат (например, всегда четыре цифры, а затем восемь символов).

Это может показаться дополнительной работой, но это тривиальное изменение в начале проекта, которое делает остальную часть проекта, которая работает с данными значительно проще (и, следовательно, более надежна).
Как выглядят ваши данные столбца TrainNo на данный момент?

Рейтинг:
0

Member 12270013

Исходя из ваших разъяснений, ваш код был изменен. Я надеюсь, что это сработает для вас.

string rowValue = "12345,asdf,65431,10000";
           int result;

           string[] splitString = rowValue.Split(',');
           foreach (string str in splitString)
           {
               if(Int32.TryParse(str, out result))
               {

                   if (result % 10000 == 0)
                   {
                       Console.WriteLine(result +" : is needed");
                   }
                   else
                   {
                       Console.WriteLine(result +" : is not needed");
                   }

               }
               else
                   {
                       Console.WriteLine(str+" : is not needed");
                   }
           }


Member 10230348

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

Member 12270013

когда вы говорите "цикл", вы перебираете каждый отдельный фрагмент строки, то есть каждый символ в ней, и теперь вы можете разделить эту единственную цифру на 10000. (но это действительно то, что вам нужно)
Теперь другой способ обойти ваш вопрос может заключаться в том, чтобы "проверить условие на всей строке", если это цифра, а затем выполнить деление на всю строку
тогда вы собираетесь использовать
1> режим работы (%), чтобы разделить номер поезда и получить остаток?
Это делит строку типа (123456 % 10000) = 3456(результат вы получаете)
Теперь выполняем операции на основе "3456"
ОПЕРАЦИОННАЯ
2> разделите операцию(/) на TrainNumber и получите частное?
Это делит строку типа (123456 / 10000) = 12.3456 (результат вы получаете)

Member 10230348

да только вот так но как я могу написать код для цикла plz помогите сэр я новичок в циклировании

Member 12270013

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