我正在使用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'类型的异常但未在用户代码中处理其他信息:无效的列名称'gender'。
我应该做些什么?
答案 0 :(得分:0)
1-确保用户表列为(fullname, username, password, email, cell, birthday, adress, gender)
2-使用prefer&#34;存储过程&#34;或低于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();