我在论坛上看了很多并研究了我的问题,但我找不到能帮助我的东西。 我从这里尝试了很多建议。 我有一个网站和3个注册页面。每个页面都有一些信息,验证器已经设置,我构建了一个SQL Server(Microsoft visual studio community 2015)。以下是第一个注册页面的代码:
修改 问题是Table是一个保留字,我只需要在sqlCommand中编写[Table]而不是Table
估计会有任何帮助。
答案 0 :(得分:4)
在分配值时,您需要在参数周围添加引号:
sqlCommand.Parameters["@email"].Value = email;
sqlCommand.Parameters["@username"].Value = userName;
您需要引号的原因是因为在您的情况下@email
和email
引用相同的字符串变量。您可以在What's the use/meaning of the @ character in variable names in C#?
@
符号
我不能100%确定上面的代码是否有效,如果没有 - 那么你应该使用方法Add
或AddWithValue
。无论采用何种方法,您都应使用"@email"
代替@email
。
有关推荐,为什么要使用Add
支持AddWithValue
,请参阅this article。
编辑:看来问题不同了。在您的代码中,您将email
和username
分配给null
:
string email = null, userName = null;
然后在代码中没有更改这些值,即它们仍然是null
。然后当你到达这一行:
if (email != null && userName != null)
您的值仍为null
,并且if
语句中的逻辑永远不会执行。首先修复这部分代码,然后我的初始答案也会有用。
更新2 SQL参数集合不包含参数,因此需要使用Add
方法执行:
sqlCommand.Parameters.Add("@email", SqlDbType.VarChar, 50).Value = email;
sqlCommand.Parameters.Add("@userName", SqlDbType.VarChar, 12).Value = userName;