更新:bio可能包含撇号(参见更新示例)
我有一个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
在C#中,您可以在字符串@
之前放置Bio=@"..."
以允许它跨越多行,但我不确定如何使用SQL查询实现相同的功能。你如何得到一个跨越多行的字符串,而不必像手动连接字符串那样:
Bio="I'm a"
+" bio that has an apostrophe, and I'm"
+" spanning multiple lines!"
答案 0 :(得分:49)
SQL Server允许以下内容(小心使用单引号而不是双引号)
UPDATE User
SET UserId = 12345
, Name = 'J Doe'
, Location = 'USA'
, Bio='my bio
spans
multiple
lines!'
WHERE UserId = 12345
答案 1 :(得分:0)
列“BIO”数据类型是什么?什么数据库服务器(sql / oracle / mysql)? 只要遵守列的数据类型中的字符限制(即:varchar(200)),就应该可以跨越多行。 尝试使用单引号,这可能会有所不同。 这对我有用:
update table set mycolumn = 'hello world,
my name is carlos.
goodbye.'
where id = 1;
另外,如果要在C#中将sql字符串合并在一起,则可能需要检查单引号。如果变量包含可以将代码从sql语句中转义出来的单引号,那么就不要执行你期望看到的所有行。
顺便说一句,您可以像在C#中一样使用分号来划分SQL语句,就像我们一样。
答案 2 :(得分:0)
使用您的VARCHAR,您可能还需要指定长度,或通常
如何抓取文本,对其进行定位,然后将其放入查询中
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的多行元素,没有它你就得到第一行,甚至不确定你是否得到整行,它可能只是第一个单词
答案 3 :(得分:-3)
我更喜欢使用@符号,因此我完全可以查看查询,并将其复制并粘贴到查询文件中:
string name = "Joe";
string gender = "M";
string query = String.Format(@"
SELECT
*
FROM
tableA
WHERE
Name = '{0}' AND
Gender = '{1}'", name, gender);
对于长期复杂的查询,这真的很棒。不错的是它保留了标签和换行符,因此粘贴到查询浏览器中会保留良好的格式