c# - UPDATE 时的 NULL 条目
问题描述
我正在尝试使用 SQL Server 2017 和 Visual Studio C# 2019 创建登录名,但它只会引发异常
System.Data.SqlClient.SqlException:无法将值 NULL 插入列“pass”、表“master.dbo.user”;该列不允许空值。更新失败。
密码已加密,因此我将其解密并放置在“通过”列下,而不是使用 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.");
}
}
}
解决方案
推荐阅读
- python - 无法让 sqlalchemy.orm 在多线程期间使用 Session.execute() 将数据插入到我的 postgres 数据库表中
- reactjs - Reactjs 和 axios。从 json 数据库中删除对象
- javascript - 如何反转 SVG 文本路径,使文本不会颠倒?
- android - Android 在运行时找不到方法
- android - Gradle:如何为每个依赖项指定架构
- python - 如何将值从一个窗口传递到另一个 PyQT
- reactjs - 在同一服务器和域上或单独部署 django drf 和 reactjs 之间哪个最好
- angular - 选择多个 Angular 组件并显示它们被选中
- android - 以编程方式区分我的自定义呼叫应用程序或默认 android 手机应用程序之间的来电
- python - python在不改变舍入的情况下抑制科学记数法