GridView読み込みセッション変数IDを入力したいのですが、{"Conversion failed when converting the nvarchar value 'finalProject.User' to data type int."}
のような変換データ型にエラーがありますが、データベーステーブルはすでにintです。どのように私はそれを修正するには?
finalProject.Userasp.netセッションを使用してnvarchar値をデータ型intに変換するときに変換が失敗しました
public class User
{
public int Id { get; set; }
public string name { get; set; }
public string surname { get; set; }
public string email { get; set; }
}
ユーザーオブジェクト
User u = new User();
u.Id = 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;
マイコード
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["user"];
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.conferenceDate , Conferences.conferencePlace , Conferences.category from Conferences inner join Users on Conferences.fk_Users = Users.Id where Users.Id = @UserId";
using(SqlCommand cmd = new SqlCommand(query))
{
cmd.Connection = con;
Convert.ToInt32(Session["UserId"]);
SqlParameter prm = cmd.Parameters.AddWithValue("@UserId", user.ToString());
if(user == null)
{
prm.Value = DBNull.Value;
}
con.Open();
GridView1.DataSource = cmd.ExecuteReader();
GridView1.DataBind();
con.Close();
}
}
}
}
ToString()メソッドを削除すると、「System.DataExceptionの型がSystem.Data.dllで発生しましたが、ユーザーコードで処理されませんでした」という例外が発生しました。既知のマネージドプロバイダのネイティブタイプ " – user5695111
に変更します。user.ToString()をConvert.TOInt32(Session [" UserId "])に置き換え、それが機能するかどうかを確認します。あなたは整数を渡す必要がありますか、user.ToString()の代わりにuser.Idを試すことができます –
これは完璧に機能しますが、私が望む結果を得られませんでした。何も起こらなかった 。それは私がなぜ理解していないgridviewでfiilする必要がありますか? – user5695111