无法存储数据库中文本区域的值...在注释列中存储多行

时间:2014-01-28 19:21:54

标签: c# asp.net sql-server

HTML代码

 <textarea id="commentarea" name="S1" cols="30" rows="5"></textarea>

C#代码

SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["RegistrationConnectionString"].ConnectionString);

conn.Open();

string insertcmnt = "insert into Comment(Comment) values(@comment)";

   SqlCommand com = new SqlCommand(insertcmnt, conn);
        com.Parameters.AddWithValue("@comment", TextBoxMode.MultiLine.ToString());
        com.ExecuteNonQuery();
        Response.Write("Commented successfully");
        conn.Close();

3 个答案:

答案 0 :(得分:1)

您需要使用TextBox:

<asp:TextBox runat="server" id="commentarea" TextMode="MultiLine" Rows="5" Columns="30"/>

然后使用

com.Parameters.AddWithValue("@comment", commentArea.Text);

答案 1 :(得分:0)

您正在存储TextBoxMode枚举中的MultiLine值的名称。您应该引用textarea对象。试试这个

 com.Parameters.AddWithValue("@comment", commentarea.Text);

此外,html中的textarea缺少runat属性

<textarea id="commentarea" name="S1" cols="30" rows="5" runat="server"></textarea>

答案 2 :(得分:0)

您的文本区域必须位于表单内,并提供ID(例如frm),还有文本区域的名称和ID(比如txtArea1),然后使用以下代码获取textarea的值:

HtmlTextArea txtImageupload = (HtmlTextArea)(frm.FindControl("txtArea1"));
string txtval = txtImageupload.Value;
com.Parameters.AddWithValue("@comment", txtval);

但是你可以通过使用TextMode设置为MultiLine的文本框控件来避免这一切。