登录窗口未处理异常

时间:2018-07-16 18:02:20

标签: c# sql exception-handling

我在c#win.form中创建了一个用于登录的窗口。我将其连接到数据库sql到名为Table的表。 当我按登录按钮时:

Projects

我有: System.Data.SqlClient.SqlException:'关键字'Table'附近的语法不正确。'

2 个答案:

答案 0 :(得分:2)

如果您确实将表命名为Table。然后,您应该知道Table也是reserved word in sql,应该将其包装在[Table]之类的方括号中,以便知道您的意思是表名而不是关键字table

第二,您不应该对查询进行字符串连接,因为它为sql injection attack打开了您的应用程序。您应该使用parameterized queries,可以查询如何编写参数化查询。

另一件事是,您不应将密码以纯文本形式存储在数据库中,而应该对密码进行加密并存储,这样在发生任何信息泄漏的情况下,不会破坏任何人的凭据。请看看at this post as example

旁注: 另一件事是,您可以添加trycatch块来进行异常处理,这样,在发生任何异常的情况下,您的应用程序都不会崩溃,并返回一些有意义的消息来描述可能出错的地方。

答案 1 :(得分:0)

对于桌面应用程序,无需重新设计身份验证过程。

只需让您的数据库表包含Windows用户及其权限的列表即可。

使用Environment.Username获取用户名,并确保表中与该用户名匹配。您甚至不需要给他们登录表格。

使用参数化查询仍然很好。