繁体   English   中英

在Visual Studio中使用SQL Server中的数据库

[英]Using Database from SQL Server in Visual Studio

我正在Visual Studio中做一个C#项目。 出于项目的目的,我需要在SQL Server中包含一个数据库。

这是我在SQL Server中编写的内容:

create table user1 (
    id int primary key identity, 
    username varchar(50),
    password varchar(50));

然后,在Visual Studio中,我想创建一个将在数据库中插入值的表单(从数据库读取工作正常!)。 这是我的代码:

string sql = "INSERT INTO user1(username, password) VALUES ('"+textBox1.Text + "'+" + textBox2.Text+")";

但是我收到一条错误消息:

System.Data.SqlClient.SqlException :INSERT语句中的列多于VALUES子句中指定的值。 VALUES子句中的值数必须与INSERT语句中指定的列数相匹配。

我究竟做错了什么?

避免直接从用户输入构造SQL语句。 这只会让您在使用SQL注入攻击时陷入困境。 请改用参数化的SQL。 如下。

string sql = "INSERT INTO user1(username, password) VALUES (@username, @password)";
command.CommandText = sql;
command.Parameters.Add(new SqlParameter("@userName", textBox1.Text));
command.Parameters.Add(new SqlParameter("@password", textBox2.Text));

话虽如此,我也强烈反对您以纯文本形式存储用户密码。 这将使你在以后的轨道上打开一个受伤的世界。

像这样做:

string sql = "INSERT INTO user1(username, password) VALUES ('"+textBox1.Text + "','" + textBox2.Text+"')";

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM