Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ASP.Net注册页-如何从其他表获取外键_Asp.net_Visual Studio 2013 - Fatal编程技术网

ASP.Net注册页-如何从其他表获取外键

ASP.Net注册页-如何从其他表获取外键,asp.net,visual-studio-2013,Asp.net,Visual Studio 2013,我正在使用Visual Studio 2013创建一个ASP.net网站。具体来说,我正在尝试注册一个客户,同时将数据插入客户表中。当我注册一个客户时,我还想获取该客户的用户id(该id插入到数据库中的用户帐户表中)。因此,本质上我需要获取用户id,但也需要确保这是当前用户的用户id 以下是我试图做的: String userQueryStr = "SELECT UserAccountID FROM UserAccounts WHERE Username = " + Email.Text; Sy

我正在使用Visual Studio 2013创建一个ASP.net网站。具体来说,我正在尝试注册一个客户,同时将数据插入客户表中。当我注册一个客户时,我还想获取该客户的用户id(该id插入到数据库中的用户帐户表中)。因此,本质上我需要获取用户id,但也需要确保这是当前用户的用户id

以下是我试图做的:

String userQueryStr = "SELECT UserAccountID FROM UserAccounts WHERE Username = " + Email.Text;
System.Data.SqlClient.SqlCommand selectCommand = new System.Data.SqlClient.SqlCommand(userQueryStr, conn);
int userID = Convert.ToInt32(selectCommand.ExecuteScalar());     
顺便说一句,Email是用户名。本质上,我试图确保UserAccounts中的username字段与注册页面文本框中键入的内容匹配。 然后我尝试存储一个insert语句,并传递USERIDINT变量,该变量存储用户帐户表中的当前用户id。 我的问题是,当我点击注册按钮运行应用程序后,当我键入用户名时会出现此错误test@testers.com:

System.Data.dll中发生“System.Data.SqlClient.SqlException”类型的异常,但未在用户代码中处理 附加信息:多部件标识符“test@testers.com“无法约束。在此行引发异常:

int userID = Convert.ToInt32(selectCommand.ExecuteScalar());   

Sql认为您的电子邮件是一个字段,因为您没有前后的引号

String userQueryStr = "SELECT UserAccountID FROM UserAccounts WHERE Username =     '" + Email.Text+"'";

现在我又犯了一个错误。它表示:System.Data.dll中发生了“System.InvalidOperationException”类型的异常,但未在用户代码中处理其他信息:已存在与此命令关联的打开的DataReader,必须先关闭该命令。此行出现错误:cmd1.ExecuteReader();我在相同的方法中使用了2个SQLCommands。这就是问题所在吗?如果您需要,这是我为客户提供的insert语句:querystr1=“插入客户(FirstName、LastName、StreetAddress1、Phone、City、State、UserID)”+”值(“+FirstName.Text+”、“+LastName.Text+”、“+StreetAddress.Text+”、“+Phone.Text+”、“+City.Text+”“',“+State.Text+”,“+userID+”)”,实际上我已经解决了。我所要做的就是在第一条insert语句之后关闭连接,然后在第二条insert语句之前重新打开它。谢谢您的帮助。