从标签文本字段获取数据时出现问题

Issue in getting data from Label text field

本文关键字:问题 数据 获取 标签 文本 字段      更新时间:2023-09-26

我在评级系统中使用以下代码。我能够从脚本到标签打印文本,但我不能将其存储在数据库中。如果我将其存储在数据库中,则只有id=@a1显示为零,但所有其他值都存储在数据库中。

Aspx页面

<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>

背后的VB代码
    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具有字符串值,但您在存储过程中将@A1参数作为Int。所以你必须把它转换成Integer,像这样:

 cmd.Parameters.AddWithValue("@A1",Convert.ToInt32(A1.Text))