Я пытаюсь создать имя входа, используя SQL Server 2017 и Visual Studio C# 2019, но выдает только исключение
System.Data.SqlClient.SqlException: Невозможно вставить значение NULL в столбец «pass», таблица «master.dbo.user»; столбец не допускает нулевые значения. ОБНОВЛЕНИЕ не удается.
Пароль зашифрован, поэтому я расшифровываю его и помещаю в столбец «pass» вместо использования AS
CREATE TABLE user
(
userID INT IDENTITY(1,1) NOT NULL PRIMARY KEY,
uname VARCHAR(255) NOT NULL,
pass VARCHAR(255) NOT NULL
);
INSERT INTO user(uname, pass)
VALUES
('admin', ENCRYPTBYPASSPHRASE('************', 'admin'));
C# код:
private void btLogin_Click(object sender, EventArgs e)
{
dbase db = new dbase();
String user = tbUser.Text;
//String pass = tbPass.Text;
SqlCommand update =
new SqlCommand("UPDATE user SET pass = CONVERT(VARCHAR(255), DECRYPTBYPASSPHRASE('************', pass)) WHERE uname = 'admin'", db.GetConnection());
db.openConn();
update.ExecuteNonQuery();
db.closeConn();
DataTable table = new DataTable();
SqlDataAdapter adp = new SqlDataAdapter();
SqlCommand sqlcmd =
new SqlCommand("SELECT * FROM user WHERE uName = '" + user + "'", db.GetConnection());
sqlcmd.Parameters.Add("@user", SqlDbType.VarChar).Value = user;
//sqlcmd.Parameters.Add("@pass", SqlDbType.VarChar).Value = pass;
adp.SelectCommand = sqlcmd;
adp.Fill(table);
/* check if user exists or not */
if (table.Rows.Count > 0)
{
MessageBox.Show("Hello");
}
else
{
MessageBox.Show("Incorrect Username/Password.");
}
}
}