【发布时间】:2016-05-10 11:27:45
【问题描述】:
我尝试在 myconferences 页面上读取会话变量 Id 并用我的查询填充 Gridview,但我收到来自 cmd.ExecuteNonQuery() 的错误“System.InvalidOperationException”。如何解决?
我的代码
public partial class MyConferences : System.Web.UI.Page
{
internal User user;
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
{
BindGrid();
}
}
private void BindGrid()
{
object user = Session["Id"];
if(user != null)
{
user = Session["user"] as User;
}
string constr = ConfigurationManager.ConnectionStrings[0].ConnectionString;
using(SqlConnection con = new SqlConnection(constr))
{
string query = "select Conferences.conferenceName , Conferences.conferencePlace , Conferences.conferenceDate , Conferences.category from Conferences inner join Users on Conferences.fk_Users = Users.Id where Users.Id =@Id";
using(SqlCommand cmd = new SqlCommand(query))
{
cmd.Connection = con;
cmd.Parameters.AddWithValue("@Id", ((object)user) ?? DBNull.Value);
con.Open();
GridView1.DataSource = cmd.ExecuteReader();
GridView1.DataBind();
cmd.ExecuteNonQuery();
con.Close();
}
}
}
}
也是登录页面上的用户对象。
User u = new User();
u.UserId = Convert.ToInt32(dr["Id"]);
u.Name = dr["name"] != DBNull.Value ? dr["name"].ToString() : string.Empty;
u.Surname = dr["surname"] != DBNull.Value ? dr["surname"].ToString() : string.Empty;
u.Email = dr["email"] != DBNull.Value ? dr["email"].ToString() : string.Empty;
Session["user"] = u;
【问题讨论】:
标签: c# asp.net gridview ado.net sqlcommand