我的表格很大,尝试仅用几行代码添加数据-而无需声明所有变量。我正在努力尝试的是:
string all_fields="";
string all_params="";
string all_values="";
var i=0;
foreach(string key in Request.Form) {
@Html.Raw(key + " " + Request.Form[key] + "\n")
if(all_fields==""){
all_fields="@"+i;
all_params=key;
all_values="\"" + Request.Form[key] + "\"";
}else{
all_fields+=", @"+i;
all_params+=", "+key;
all_values+=", \"" + Request.Form[key] + "\"";
}
i+=1;
}
var db = Database.Open("the_db");
var sql = "INSERT INTO the_table ("+all_fields+") Values("+all_params+")";
db.Execute(sql, all_values); <--- Don't work
变量的内容如下:
string all_fields="fistname,lastname";
string all_params="@0,@1";
string all_values="\"Jon\", \"Doe\"";
我真的没想到db.Execute(sql, all_values);
可以工作。它是一个字符串,但必须是一个对象:https://docs.microsoft.com/en-us/dotnet/api/webmatrix.data.database.execute?view=aspnet-webpages-3.2#WebMatrix_Data_Database_Execute_System_String_System_Object___
如何创建该对象?还是任何其他解决方案?想法?
我知道我只能用SQL做到这一点。但是随后由于sql-injection我将遇到一个安全问题。