Member 12938546 Ответов: 2

Как удалить запятую из строки динамически


UPDATE tbl SET Colname= '6277',Colname= '8/16/2017 2:39:17 PM',Where mrddmonth_review_id =448



Хотите сначала убрать запятую где

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

UPDATE tbl SET Colname= '6277',Colname= '8/16/2017 2:39:17 PM',Where mrddmonth_review_id =448

Tomas Takac

Вам нужно показать код, который произвел эту строку. Пожалуйста, используйте Улучшить вопрос чтобы обновить ваш вопрос. Ваш код должен войти в раздел "Что я пробовал".

Jochen Arndt

Вы отметили свой вопрос с помощью C#.

Если у вас есть строковый объект C#, используйте функцию Replace(Char, Char) С ',' и '' (Пробел).

Но даже тогда у вас будет недопустимая команда SQL, потому что вы пытаетесь установить поле Colname дважды.

Dave Kreskowiak

В то время как "решения" отвечают на прямой вопрос, реальная проблема заключается в том, почему у вас есть запятая там в первую очередь? Исправьте эту проблему, и вам не придется "исправлять ее" в качестве заключительной операции.

2 Ответов

Рейтинг:
2

ZurdoDev

sqlStatement = sqlStatement.Replace(",Where", " Where");


Просто замените ",где" на "где". Все очень просто.


Prifti Constantine

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

ZurdoDev

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

Рейтинг:
0

Prifti Constantine

Одним из простых решений было бы заменить запятую (',') на пустой символ, если ваша строковая переменная содержит (',') в первую очередь:

string sqlStatement = "<pre>UPDATE tbl SET Colname= '6277',Colname= '8/16/2017 2:39:17 PM',Where mrddmonth_review_id =448";
                if (sqlStatement.Contains(',')) {
                    sqlStatement = sqlStatement.Replace(',', ' ');
                }


Другим решением было бы использовать
sqlStatement.Remove()
метод, который строковые переменные предоставляют сами по себе...


ZurdoDev

Таким образом, это приведет к тому, что оператор sql станет
Обновление tbl SET Colname= '6277' Colname= '16.08.2017' где
но это не сработает.

Prifti Constantine

Это просто оператор if, который каждый раз проверяет строку, если в ней есть какие-либо запятые... Вы можете поместить этот код внутри метода или события и вызвать его каким-то образом(многие существующие кнопки,изменение текста текстового поля и т. д.). При этом каждый раз, когда будет выполняться этот конкретный блок кода, он будет удалять запятые из вашей строки. Я надеюсь, что меня полностью поняли и что это вам поможет!

Dave Kreskowiak

Лучшим решением было бы вообще не ставить запятую в строке.

Поскольку мы понятия не имеем, как эта строка генерируется, невозможно сказать ему, как ее исправить.

Prifti Constantine

Конечно, вы можете сказать ему, как его отформатировать... Все возможно.. Код, который я предоставил, независимо от того, какой это тип строки, он всегда будет удалять запятые из строки. Не имеет значения, является ли это строкой sqlStatement или простым "Привет". string.....It всегда будет удалять запятые . Поскольку строка генерируется ,то единственное, в чем можно быть уверенным, - это то, что вы действительно можете завладеть строкой, поместить ее в переменную и действовать с ней так, как вы хотите...Невозможное существует для тех, кто хочет бросить курить.