【问题标题】:Razor / Webmatrix / SQL: Update TextareaRazor / Webmatrix / SQL:更新 Textarea
【发布时间】:2013-02-17 22:54:25
【问题描述】:

我正在尝试实现一个简短的简历表单,每个用户都可以在其中编辑和更新其简历。基于这样一个事实:如果用户之前填写过表单,之前的文本或什么都没有,作为初始文本返回到 Textarea。

这是我从键盘获取用户名、在 dbase 中搜索值并尝试在用户提交表单之前将其输出到文本区域的块。

如果你愿意,可以作为一种个人资料记忆。

@{
Validation.RequireField("currentuser");
Validation.Add("bioprint", Validator.StringLength(3000, 0, "Your bio should not exceed 3000 characters"));

var init = "";
var currentuser = Request["currentuser"];
var db = Database.Open("ResearchA");
var cbio = db.QuerySingle("SELECT bios FROM usernamesb WHERE username = @0",currentuser); //get current bio string

if (cbio == null) {init = cbio;}        //check if string is NULL
else {init = "Tell us about you...";}

if(IsPost && Validation.IsValid())  {

    var userbio = @Request["Bio"];

    var insertbio = "UPDATE usernamesb SET bios = @0 WHERE username = @1";
    db.Execute(insertbio, userbio, currentuser);  //Update database with a new entry.

 }

}

下面是我在 HTML 块中设置控件的方式:

<input type="text" name="currentuser" id="currentuser" value="@Request.Form["currentuser"]"/>

<textarea name="Bio" rows="10" cols="50" placeholder ="@cbio"></textarea> 

但是我没有得到已经存在的字符串输出。

非常感谢大家的关注!!

【问题讨论】:

    标签: sql razor textarea webmatrix


    【解决方案1】:

    您的 cbio 变量当前正在从数据库中加载一行。您需要从该行中获取其中一个字段。有两种方法,要么将你的数据库查询更改为:

    var cbio = db.QueryValue("SELECT bios FROM usernamesb ...
    

    将只返回字符串。或者让您的数据库查询保持不变,并通过更改 html 部分来更改从行访问字段的方式:

    <textarea name="Bio" rows="10" cols="50">@cbio.bios</textarea>
    

    【讨论】:

    • 非常感谢诺克斯!刚刚了解了 QueryValue 和 SingleQuery 之间的区别,也非常感谢。仅供参考,您引用的第二种方式不起作用,它会引发:Cannot perform runtime binding on a null reference 错误。
    • 该错误通常意味着当您进行数据库查询时,您没有返回任何行,因此您的 cbio 将为空。
    • 在这种情况下,使用我用来运行试用版的用户名是有意义的;)很好!
    【解决方案2】:

    如果您想在&lt;textarea&gt; 中设置文本,则将要显示的值放在开始和结束标记之间:

    <textarea name="Bio" rows="10" cols="50">@cbio</textarea>
    

    【讨论】:

    • 谢谢!我在文本框中得到的响应是“WebMatrix.Data.DynamicRecord”有什么想法吗?!
    猜你喜欢
    • 2012-03-17
    • 1970-01-01
    • 2013-03-18
    • 1970-01-01
    • 2011-04-28
    • 2011-07-17
    • 1970-01-01
    • 2012-02-28
    • 1970-01-01
    相关资源
    最近更新 更多