如何在C#文件中获取Radio输入值并保存至SQL数据库?
嘿,我来帮你搞定这个问题!下面是获取Radio控件值并将评分保存到SQL数据库的详细步骤:
获取Radio控件值并保存到SQL数据库的实现方案
首先看你的ASPX代码,这些是HTML原生的Radio按钮,没有设置runat="server",我给你两种获取值的方式,再讲如何安全保存到数据库:
一、获取选中的Radio评分值
方式1:通过Request.Form直接获取(适合原生HTML控件)
因为所有Radio的name属性都是rating,后台C#代码里可以直接通过Request.Form拿到选中的值:
// 获取选中的评分值 string selectedRating = Request.Form["rating"]; // 先判断用户是否选择了评分,避免空值报错 if (!string.IsNullOrEmpty(selectedRating)) { int ratingValue = int.Parse(selectedRating); // 拿到值后就可以准备存数据库了 }
方式2:转为服务器控件操作(更贴合Web Forms习惯)
如果想直接用服务器控件的属性操作,可以给每个Radio加上runat="server",修改后的ASPX代码示例:
<li> <fieldset class="rating"> <legend>Please rate:</legend> <input type="radio" id="star5" name="rating" value="5" runat="server" /> <label for="star5" title="Rocks!">5 stars</label> <input type="radio" id="star4" name="rating" value="4" runat="server" /> <label for="star4" title="Pretty good">4 stars</label> <!-- 剩下的star3/star2/star1同理加上runat="server" --> </fieldset> </li>
然后在后台代码里判断哪个Radio被选中:
int ratingValue = 0; if (star5.Checked) { ratingValue = 5; } else if (star4.Checked) { ratingValue = 4; } // 依次判断star3、star2、star1的选中状态 if (ratingValue > 0) { // 确认有选中值后,执行数据库保存逻辑 }
二、将评分值安全保存到SQL数据库
这里必须用参数化查询,绝对不能直接把值拼进SQL语句,否则会有SQL注入风险,示例代码如下:
// 替换成你实际获取到的评分值 int ratingValue = 5; // 替换成你的SQL服务器连接字符串 string connectionString = "Server=你的服务器地址;Database=你的数据库名;User Id=用户名;Password=密码;"; // 使用using语句自动释放数据库连接资源 using (SqlConnection conn = new SqlConnection(connectionString)) { // 替换成你的表名和字段名 string sql = "INSERT INTO 评分表 (用户评分) VALUES (@Rating)"; using (SqlCommand cmd = new SqlCommand(sql, conn)) { // 添加参数,指定数据类型和值 cmd.Parameters.Add("@Rating", SqlDbType.Int).Value = ratingValue; conn.Open(); // 执行插入操作,返回受影响的行数 int rowsAffected = cmd.ExecuteNonQuery(); if (rowsAffected > 0) { // 插入成功的逻辑,比如给用户提示 } } }
额外注意事项
- 一定要做空值校验:如果用户没选任何Radio就提交,
Request.Form["rating"]会返回null,直接转换会报错,所以必须先判断。 - 如果你用的是Web Forms,也可以直接使用
RadioButtonList控件,这样获取选中值更简单,只需要RadioButtonList1.SelectedValue就能拿到值。
内容的提问来源于stack exchange,提问作者Oz Cohen Matzliah
相关产品推荐
相关产品推荐

