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