[英]Issue in getting data from Label text field
Following code I am using in rating system. 以下代码我在评分系统中使用。 I am able to print text from script to label but I am not able to store it in the database. 我可以将文本从脚本打印到标签,但无法将其存储在数据库中。 If I store it in database, it is showing zero only for the id=@a1
but all other values are getting stored into database. 如果我将其存储在数据库中,则它仅对id=@a1
显示为零,但所有其他值都将存储到数据库中。
<html> <head> <script> function postToController1() { for (i = 0; i < document.getElementsByName('rating').length; i++) { if (document.getElementsByName('rating')[i].checked == true) { var ratingValue = document.getElementsByName('rating')[i].value; break; } } document.getElementById("A1").innerHTML = ratingValue; //alert(ratingValue); } </script> </head> <body> <form id="form1" runat="server" style="text-align:center" class="rating1" method="post"> <div class="container-fluid bg-1 text-center"> <table class="table1"> <tr> <td> <asp:Label ID="Question1" CssClass="lb1" runat="server" text="Q1"></asp:Label> </td> <td class="rating" id="Q1"> <input type="radio" id="qs15" name="rating" value="5" onclick="postToController1();" /> <label class="full" for="qs15" title="Awesome - 5 stars"></label> <input type="radio" id="qs14" name="rating" value="4" onclick="postToController1();" /> <label class="full" for="qs14" title="Pretty good - 4 stars"></label> <input type="radio" id="qs13" name="rating" value="3" onclick="postToController1();" /> <label class="full" for="qs13" title="Average - 3 stars"></label> <input type="radio" id="qs12" name="rating" value="2" onclick="postToController1();" /> <label class="full" for="qs12" title="Poor - 2 stars"></label> <input type="radio" id="qs11" name="rating" value="1" onclick="postToController1();" /> <label class="full" for="qs11" title="Very Poor - 1 star"></label> </td> <td> <asp:Label ID="A1" CssClass="lb1" runat="server"></asp:Label> <asp:Label ID="g1" CssClass="lb1" runat="server" Text=" of 5"></asp:Label> </td> </tr> </table> <asp:Button ID="Button1" CssClass="button button1" runat="server" Text="Submit" /> </div> </form> </body> </html>
Public Sub GetRating()
Dim dt As New DataTable()
Dim adp As New SqlDataAdapter()
Dim cmd As New SqlCommand()
Dim connectionString As String =ConfigurationManager.ConnectionStrings("DefaultConnection").ConnectionString
Dim cn As New SqlConnection(connectionString)
cn.Open()
Try
cmd = New SqlCommand("RatingStorage1", cn)
cmd.Parameters.AddWithValue("@DID", DID.Text.Trim())
cmd.Parameters.AddWithValue("@EMPID", EMPID.Text.Trim())
cmd.Parameters.AddWithValue("@SNL", SNL.Text.Trim())
cmd.Parameters.AddWithValue("@SNB", SNB.Text.Trim())
cmd.Parameters.AddWithValue("@A1", A1.Text)
cmd.CommandType = CommandType.StoredProcedure
cmd.ExecuteNonQuery()
ClientScript.RegisterStartupScript(Page.GetType(), "validation", "<script language='javascript'>alert ('Your Rating Saved Successfully Thank you for Rating US!!!')</script>")
Response.Redirect("../FrontPage/Mainpage.aspx")
cn.Close()
Catch ex As Exception
ClientScript.RegisterStartupScript(Page.GetType(), "validation", "<script language='javascript'>alert ('Unable to Save Data Please Contact ITS'</script>")
cn.Close()
Response.Redirect("../FrontPage/Mainpage.aspx")
End Try
End Sub
CREATE PROCEDURE RatingStorage1
@DID int,
@EMPID int,
@SNL int,
@SNB int,
@A1 int,
AS
BEGIN
insert into RatingStorage values (@DID,@EMPID,@SNL,@SNB,@A1)
END
A1.Text
has the string value but you have take @A1
parameter as Int
in your stored procedure. A1.Text
具有字符串值,但是您在存储过程中将@A1
参数作为Int
。 So you have to convert it into Integer
like this: 因此,您必须像这样将其转换为Integer
:
cmd.Parameters.AddWithValue("@A1",Convert.ToInt32(A1.Text))
我使用了隐藏字段而不是标签,我可以将其存储到数据库中
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.