Webmatrix 3使用list中的参数插入查询

时间:2014-07-09 15:08:43

标签: razor webmatrix

我的基本问题是如何在列表中选择所选值并在SQL INSERT语句中使用该值。 我有2张桌子 - 联系人和称呼。当要插入记录时,从列表中选择一个称呼(先生,夫人,博士等)。为了方便起见,我只包括处理这个的代码。 代码实际上是按原样运行的,但是,我觉得我的解决方案是可疑的。 这是代码: -

@{
    var Saln="";


<!DOCTYPE html>

<html lang="en">
    <head>
        <meta charset="utf-8" />
        <title></title>
    </head>
    <body>

   <Form  method="post" action="">
   <select name="Choice"> 

 @{      
    var db1 = Database.Open("Contact");
    var selectCommand1 = "SELECT ID, Saln FROM Salutation";
    var selectedData1 = db1.Query(selectCommand1);

    foreach(var row1 in selectedData1)
     {
        <option value="@row1.ID">@row1.Saln</option>
     }
   } 
    </select> 
  @{      
   if (Request["Choice"] != null)
   {
   var  Sal=Request["Choice"];
   var db = Database.Open("Contacts");
   var insertCommand = "INSERT INTO Contacts (Saln) VALUES( "+Request["Choice"]+')';
    db.Execute(insertCommand,Saln );

   }  
  }
  <input type="submit" value="Submit" /> 
  </form>
  </body>
  </html>

不接受变量Sal或@ 0。

1 个答案:

答案 0 :(得分:0)

也许您应该遵循ASP.NET WebPages的优秀教程,例如http://www.asp.net/web-pages/tutorials上的那些。

无论如何,您的代码可能是:

@{
    var Saln="";
    var db1 = Database.Open("Contact");
    var selectCommand1 = "SELECT ID, Saln FROM Salutation";
    var selectedData1 = db1.Query(selectCommand1);

    if(IsPost)
    {
        if (Request["Choice"] != null)
        {
            var db = Database.Open("Contacts");
            var insertCommand = "INSERT INTO Contacts (Saln) VALUES(@0)";
            db.Execute(insertCommand, Request["Choice"]);
        }
    }            
} 

<!DOCTYPE html>

<html lang="en">
<head>
    <meta charset="utf-8" />
    <title></title>
</head>
<body>

    <Form  method="post" action="">
    <select name="Choice"> 
        @foreach(var row1 in selectedData1)
        {
            <option value="@row1.ID">@row1.Saln</option>
        }
    </select> 
    <input type="submit" value="Submit" /> 
    </form>
</body>
</html>