有人可以告诉我,为什么基于此btn Click事件将会话值保存到数据库时为什么返回-1。
using (SqlConnection con = new SqlConnection(CS))
{
SqlCommand cmdManID = new SqlCommand("SELECT
managerID,userEmailAddress,userName FROM [MANAGER] ,[USER] WHERE
[MANAGER].managerID = [USER].userID AND [USER].userName= @Uname;",con);
cmdManID.Parameters.Add(new SqlParameter("@Uname",
Session["UName"]));
con.Open();
}
int manID = cmdManID.ExecuteNonQuery();
//manID;
con.Close();
答案 0 :(得分:2)
因为-1恰好是您对ExecuteNonQuery的SELECT
所期望的结果:
“对于UPDATE,INSERT和DELETE语句,返回值是受命令影响的行数。当在要插入或更新的表上存在触发器时,返回值包括受两个命令影响的行数。插入或更新操作以及受一个或多个触发器影响的行数。对于所有其他类型的语句,返回值为-1。如果发生回滚,则返回值为-1。”
如果您只期望一个返回值,那就是ExecuteScalar的用途:https://docs.microsoft.com/en-us/dotnet/api/system.data.sqlclient.sqlcommand.executescalar?view=netframework-4.7.2