【发布时间】:2014-08-09 22:49:24
【问题描述】:
我在 Webmatrix 中创建了一个数据库,它是一个名为 Fish 的表。它存储了许多鱼,它们在哪里被捕获,它们是如何被捕获的等等。我也在 Webmatrix 中创建了一个前端,以便可以搜索数据库。当我在搜索框中输入一条鱼然后点击搜索时,它会抛出一个我无法弄清楚的错误。我的数据库称为“采购矩阵”,表称为“鱼”。这是我为搜索功能所做的代码;
@{ var db = Database.Open("采购矩阵"); var selectCommand = "SELECT * FROM Fish"; var searchTerm = "";
if(!Request.QueryString["searchField"].IsEmpty() ) { selectCommand = "SELECT * FROM Fish WHERE Fish = @0"; searchTerm = Request.QueryString["searchField"]; } if(IsPost){ var selectedData = db.Query(selectCommand, searchTerm); } } <h1>Search for Fish stored in the Database</h1>搜索: 搜索
@if(!Request.QueryString["searchField"].IsEmpty() ){ foreach(var row in db.Query(selectCommand, searchTerm)) { <div class="col_12 box"> <form method="post"> <!--Entry in Search box--> </form> </div> } } else { <div class="col_12 box"> <form method="post"> <!--No entry in Search Box--> </form> </div> }
这是返回的错误:
列名无效。 [节点名称(如果有)=,列名称= Fish ] 描述:在运行过程中发生了未处理的异常 执行当前的 Web 请求。请查看堆栈跟踪 有关错误及其起源的更多信息 代码。
异常详细信息:System.Data.SqlServerCe.SqlCeException:列 名称无效。 [节点名称(如果有)=,列名称=鱼]
来源错误:
第 25 行:第 26 行:
@if(!Request.QueryString["searchField"].IsEmpty()){ 第 27 行:
foreach(var row in db.Query(selectCommand, searchTerm)) { 第 28 行:
第 29 行:
我尝试了各种不同的列名,它们阻止了错误的发生,但它们也不会返回任何结果。唯一对我来说似乎合乎逻辑的事情是让整个表格可供选择,以防搜索通用名称、拉丁名称或捕获区域,而不仅仅是来自一列的信息。
【问题讨论】: