NULL запись при обновлении - PullRequest
0 голосов
/ 25 апреля 2020

Я пытаюсь создать имя входа, используя 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.");
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...