SQL 数据库中的单选按钮值

Posted

技术标签:

【中文标题】SQL 数据库中的单选按钮值【英文标题】:Radio button value in SQL database 【发布时间】:2015-08-20 05:18:31 【问题描述】:

我正在使用 Visual Studio 2013 开发带有 SQL 数据库的基本网站。在注册表单上有男性或女性的单选按钮选择。我正在使用 asp.net。

<div class="radio-inline" style="padding-left: 0px;">
    <label class="labelinput">Gender:</label>
    <label class="radio-inline">
        <input class="radio" type="radio" value="male" id="male"     
            name="gender" checked="checked"/>
        <p style="margin: 0; padding-left: 20px; color: black; 
            font-size: 1.4em;">Male</p>
    </label>
    <label class="radio-inline">
        <input class="radio" type="radio" value="female" id="female" name="gender" />
        <p style="margin: 0; padding-left: 20px; color: black;
            font-size: 1.4em;">Female</p>
    </label>
</div>

我尝试在数据库中添加一列“性别”。然后在c#部分我写了这个:

string gender = Request.Form["gender"];

我使用一个包含函数的类来连接数据库。班级的名字是'Eitan'。其中一个功能就是连接数据库,执行sql行:

public static void DoQuery(string fileName, string sql)

    SqlConnection conn = ConnectToDb(fileName);
    conn.Open();
    SqlCommand com = new SqlCommand(sql, conn);
    com.ExecuteNonQuery();
    com.Dispose();
    conn.Close();

我的sql行是:

string sql;
sql = "insert into users(fullname, username, password, email, cell, birthday, adress, gender)";
sql += " values('" + fullname + "','" + username + "','" + password + "','" + email + "','" + cell + "','" + birthday + "','" + adress + "','" + gender + "')";

(我不止性别)文件名(数据库文件名):

string filename = "database.mdf";

所以我使用带有文件名和 sql 语句的函数,当我填写表格并按提交时,它让我回到 'com.ExecuteNonQuery();'在函数 DoQuery 中显示此错误:

System.Data.dll 中出现“System.Data.SqlClient.SqlException”类型的异常,但未在用户代码中处理其他信息:无效的列名“性别”。

有什么想法我应该怎么做?

【问题讨论】:

请注意,您的代码容易受到SQL Injection Attacks 的攻击,这是很严重的事情。 检查你的数据库是否存在列名gender,同时阅读什么是sql注入。 确保列名是性别 存储性别值的列的名称是什么? 感谢您的提醒..我的列名是性别.. 【参考方案1】:

1- 确保用户表列 (fullname, username, password, email, cell, birthday, adress, gender) 2- 使用首选“存储过程”或以下代码进行 crud 操作(也用于 SQL 注入攻击)

String sql = "INSERT INTO USERS (fullname, username, password, email, cell, birthday, adress, gender)  
     VALUES(@fullname,@username,@password, @email,@cell,@birthday,@adress, @gender)";

SqlCommand command = new SqlCommand(sql, db.Connection);
command.Parameters.Add("@fullname",fullname);
command.Parameters.Add("@username",username);
command.Parameters.Add("@password",password);
command.Parameters.Add("@email",email);
command.Parameters.Add("@cell",cell);
command.Parameters.Add("@birthday",birthday);
command.Parameters.Add("@adress",adress);
command.Parameters.Add("@gender",gender);

command.ExecuteNonQuery();

【讨论】:

以上是关于SQL 数据库中的单选按钮值的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 SQL-lite 数据库检索到 android studio 中的单选按钮组

在 vue 组件上提交表单时如何获取值单选按钮?

在winform中如何获取两个单选框中选中的那个值

C# WPF:当单选按钮显示为图像时,数据网格中的单选按钮分组不起作用

Python Tkinter 中的单选按钮值

MFC 中的单选按钮(重写)