C# 如何检查用户是否将寄存器字段留空

C# 如何检查用户是否将寄存器字段留空,c#,sql-server,count,null,C#,Sql Server,Count,Null,我有登记表。在这种情况下,它只包含用户名和密码 当我在SQL Server中创建表时,我将两列都设置为NOTNULL,但当我尝试在不输入用户名或密码的情况下注册时,不会出现错误,并且我的表单“注册”新用户(例如,如果我没有输入密码) 这是我的代码,如果有人能帮我解决这个问题,也可以说,如果有其他错误/写得不好的代码,因为我对所有这些都是新手。我认为我在SQL注入问题上做得很好,但你们永远不会知道。非常感谢您的回复 private void button1_Click(object sender,

我有登记表。在这种情况下,它只包含用户名和密码

当我在SQL Server中创建表时,我将两列都设置为NOTNULL,但当我尝试在不输入用户名或密码的情况下注册时,不会出现错误,并且我的表单“注册”新用户(例如,如果我没有输入密码)

这是我的代码,如果有人能帮我解决这个问题,也可以说,如果有其他错误/写得不好的代码,因为我对所有这些都是新手。我认为我在SQL注入问题上做得很好,但你们永远不会知道。非常感谢您的回复

private void button1_Click(object sender, EventArgs e)
    {

        SqlConnection cn = new SqlConnection("Data Source=HOME-PC;Initial Catalog=TestDB1;Integrated Security=True");

    try
    {
        cn.Open();
        String query = "INSERT INTO dbo.users (uUsername, uPassword) VALUES (@uUsername, @uPassword)";

        SqlCommand command = new SqlCommand(query, cn);
        command.Parameters.AddWithValue("@uUsername", textBox1.Text);
        command.Parameters.AddWithValue("@uPassword", textBox2.Text);

        command.ExecuteNonQuery();

        MessageBox.Show("OK");

        this.usersTableAdapter.Fill(this.testDB1DataSet.users);

    }
    catch (Exception ex)
    {
        MessageBox.Show("Error");
    }
    finally
    {
        cn.Close();
    }
    }

如果我理解正确的话,您有一个用C#编写的应用程序,它可以与SQL Server后端交互

您应该能够在C代码中添加一个复选框,以便在单击按钮时检查文本框是否为空。我的C#非常生锈,但可以这样做:

if (string.IsNullOrWhiteSpace(textBox1.Text) || string.sNullOrWhiteSpace(textBox2.Text)) 
{
    messagebox.show("Invalid entry"); 
}
遗憾的是,我没有VisualStudio来检查这一点,但在执行SQL操作之前,我会检查文本框是否为空


另外,我会将文本框的名称更改为您能记住的名称,否则在维护代码时,您会发现这是一场噩梦。

检查
textBox1.Text
textBox1.Text
是否为空,如果为空,则根本不运行SQL命令。您是否可以选择使用Entity Framework,我强烈建议使用它,而不是嵌入您自己的查询。它将处理比您想象的更多的注入场景,更不用说随着时间的推移会随着新场景的发现而更新。这看起来像java,而不是c#,String.IsNullOrEmpty(username.Text)。抱歉,现在已修复。谢谢你发现了它。@Welshboy-是的,我明白你的意思,所以我把它改成了c#@Marius Bancilla-非常感谢@jtimperley-谢谢,我会重新编写它,并使用“使用”选项,我读过它,但直到最近我还在学习使用它。是的,它很有效,谢谢。我还添加了textbox1.clear();和textbox2.clear();是的,谢谢大家。我得到的所有坏名声分数都是值得的;)