我目前有這個功能(見下文),它將答案和相關內容(例如註釋)添加到50個問題左右。我試圖通過將其更改爲存儲過程來使數據庫安全,以便我可以從用戶中刪除寫入權限。這是正確的方法嗎?將許多值傳遞給SQL Server存儲過程
我應該使用表值參數嗎?或者我應該調用存儲過程50次?前者覺得這是對的,但後者在代碼中會看起來更漂亮,但我認爲效率不高。
還是...有更好的方法嗎?
int AddAnswersToTable()
{
var Cmd = Db.NewCommand();
var Str = new StringBuilder("INSERT INTO answers (qu_id,answer,notes) VALUES");
int i = 1;
string Join = string.Empty;
foreach (var Qu in Page)
{
Str.Append(Join);
Str.Append("(");
Str.Append((Name = "@qu_id" + i) + ",");
Cmd.Parameters.AddWithValue(Name, Qu.QuId);
Str.Append((Name = "@ans" + i) + ",");
Cmd.Parameters.AddWithValue(Name, Qu.Answer.Truncate(499));
Str.Append((Name = "@notes" + i) + ",");
Cmd.Parameters.AddWithValue(Name, Qu.Notes.Truncate(499));
Str.Append(")");
Join = ",";
i++;
}
return Cmd.ExecuteNonQuery(Str.ToString());
}
在此先感謝。
有趣。我只是想多次打電話而已,盼望嘲笑! – noelicus