2017-06-13 57 views
-1

我正在使用string.Format方法構建一個字符串。通常情況下,我將有桌子很長的參數列表與例如許多列長參數的字符串格式

string query = string.Format("{0},{1},{2},...,{30}", val1, val2, ...., val30); 

C#有處理這種字符串的更簡潔的方式?

+4

您正在用'string.Format'構建sql查詢?你有沒有聽說過SQL注入? –

+4

使用參數化查詢,而不是使用'String.Format' – Agalo

+0

不知道是否有更好的方法,但只是爲了不使用可以接受參數而不是使用字符串作爲查詢的存儲過程。你聽說過SQL注入嗎? –

回答

1

您可以使用字符串插值:

$"{val1},{val2},{val3}" 

但是我不得不提醒你:不建立使用string.Format和相似的SQL語句。 Use parameterized queries!

+0

謝謝。不知道字符串插值:) – iab

-1

我正在使用string.Format方法構建SQL查詢。

那麼,這是你的第一個錯誤。您可能最擅長查詢一個參數。

但是,忽略這一點,你的問題是關於建立字符串。而要做到這一點的最好辦法是與StringBuilder對象:

var sql = new StringBuilder(); 
sql.AppendFormat("{0},{1},{2},", val1, val2, val3); 
sql.AppendFormat("{0},{1},{2},", val4, val5, val6); 
0

不要建立與的String.Format或串插你的查詢

有內置的方法安全參數的查詢:

string sql = "SELECT name from student where id = @id"; 

using (SqlConnection connection = new SqlConnection(someConnectionString)) 
using (SqlCommand command = new SqlCommand(sql, connection)) 
{ 
    command.Parameters.Add(new SqlParameter("id", someIdVariable)); 
    var results = command.ExecuteReader(); 
} 
相關問題