Строковое значение SQL, охватывающее несколько строк в запросе - программирование
Подтвердить что ты не робот

Строковое значение SQL, охватывающее несколько строк в запросе

ОБНОВЛЕНИЕ: био может содержать апострофы (см. обновленный пример)

У меня есть SQL-запрос, который имеет значение, которое охватывает несколько строк и вызывает запрос:

UPDATE User SET UserId=12345, Name="J Doe", Location="USA", Bio="I'm a
bio that has an apostrophe, and I'm 
spanning multiple lines!" 
WHERE UserId=12345

В С# вы можете поместить @ перед строкой [email protected]"...", чтобы позволить ей охватывать несколько строк, но я не уверен, как то же самое можно достичь с помощью SQL-запросов. Как вы получаете строку, охватывающую несколько строк, без необходимости делать такие вещи, как ручная конкатенация строк:

Bio="I'm a"
+" bio that has an apostrophe, and I'm"
+" spanning multiple lines!" 
4b9b3361

Ответ 1

SQL Server допускает следующее (будьте осторожны, чтобы использовать одинарные кавычки вместо double)

UPDATE User
SET UserId = 12345
   , Name = 'J Doe'
   , Location = 'USA'
   , Bio='my bio
spans 
multiple
lines!'
WHERE UserId = 12345

Ответ 2

Каков тип столбца "BIO"? Какой сервер базы данных (sql/oracle/mysql)? Вы должны иметь возможность охватывать несколько строк, сколько хотите, до тех пор, пока вы придерживаетесь символьного ограничения в типе столбца (т.е. Varchar (200)). Попробуйте использовать одинарные кавычки, которые могут иметь значение. Это работает для меня:

update table set mycolumn = 'hello world,
my name is carlos.
goodbye.'
where id = 1;

Кроме того, вы можете поместить чеки для одиночных кавычек, если вы объединяете строку sql вместе на С#. Если переменная содержит одинарные кавычки, которые могут вывести код из инструкции sql, поэтому не делать все строки, которые вы ожидали увидеть.

Кстати, вы можете разграничить свои SQL-запросы с помощью двоеточия, как на С#, так же, как FYI.

Ответ 3

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

Как насчет захвата текста, создания его укуса, а затем помещения его в запрос witrh

String TableName = "ComplicatedTableNameHere";  
EditText editText1 = (EditText) findViewById(R.id.EditTextIDhere); 
String editTextString1 = editText1.getText().toString();  

BROKEN DOWN

String TableName = "ComplicatedTableNameHere";            
    //sets the table name as a string so you can refer to TableName instead of writing out your table name everytime

EditText editText1 = (EditText) findViewById(R.id.EditTextIDhere); 
    //gets the text from your edit text fieldfield 
    //editText1 = your edit text name
    //EditTextIDhere = the id of your text field

String editTextString1 = editText1.getText().toString();  
    //sets the edit text as a string
    //editText1 is the name of the Edit text from the (EditText) we defined above
    //editTextString1 = the string name you will refer to in future

, затем используйте

       /* Insert data to a Table*/
       myDB.execSQL("INSERT INTO "
         + TableName
         + " (Column_Name, Column_Name2, Column_Name3, Column_Name4)"
         + " VALUES ( "+EditTextString1+", 'Column_Value2','Column_Value3','Column_Value4');");

Надеюсь, это поможет некоторым...

ПРИМЕЧАНИЕ каждая строка находится внутри

'"+stringname+"'

его 'и', которые позволяют многострочный элемент srting, без него вы просто получаете первую строку, даже не уверен, что если вы получите всю строку, это может быть просто первое слово

Ответ 4

Я предпочитаю использовать символ @, поэтому я вижу запрос точно так же, как я могу скопировать и вставить в файл запроса:

string name = "Joe";
string gender = "M";
string query = String.Format(@"
SELECT
   *
FROM
   tableA
WHERE
   Name = '{0}' AND
   Gender = '{1}'", name, gender);

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