我正在使用 WebMatrix C# 构建一个站点,并且有一个包含多个需要从数据库填充的输入字段的页面。我从中提取数据的表具有组合 id/value 列,其中 id 对应于输入字段 id。
该表如下所示,其中 field_data = data field_name = 与输入字段匹配的id
id doc_id field_data field_name
------ ------- ------------- ------------
45680 1549 Astoria Apartments q4_1Property
45681 1549 1000 q11_7Arbor
45682 1549 61 Street q12_8Other[0][]
45683 1549 Cleveland q12_8Other[0][1]
45684 1549 Ohio q12_8Other[1][]
45685 1549 43589 q12_8Other[1][1]
45686 1549 USA q12_8Other[2][]
45687 1549 12 q12_8Other[2][1]
45688 1549 d q12_8Other[3][]
45689 1549 13 q12_8Other[3][1]
我可以这样做:
var queryinputvalue = "SELECT field_data FROM document_data WHERE field_name = @0 AND doc_id = @1";
<input type="text" class=" form-textbox" id="input_4" name="q4_1Property" size="20" value="@db.QueryValue(queryinputvalue, "q4_1Property", 1549)"/>
但是其中一些表单有超过 100 个输入字段,并且为每个字段进行单独的数据库查询似乎有些过分。
有没有办法对所有数据进行一次查询,然后从该查询中只选择我需要的数据?
如下所示,[] 中的内容应该告诉 WebMatrix 从查询中返回哪一行。
var queryinputvalue = db.Query("SELECT * FROM document_data WHERE doc_id = @1", 1549);
<input type="text" class=" form-textbox" id="input_4" name="q4_1Property" size="20" value="@queryinputvalue.[SELECT row where field_name = 'q4_1Property'].field_data"/>
谢谢你的帮助。