string connstring = ConfigurationManager.ConnectionStrings["electionConnectionString"].ConnectionString;
protected void Page_Load(object sender, EventArgs e)
{
updatedata();
}
public void updatedata(){
int ward_no =Convert.ToInt32((Session["wardno"]));
string query = "select ward_no,part_no,part_leader1_name,part_leader1_mob,part_leader2_name,part_leader2_mob,t_streets,t_families,t_electoral,t_male,t_female,t_others from f_field_details where ward_no=@ward_no";
MySqlConnection con = new MySqlConnection(connstring);
con.Open();
MySqlCommand cmd = new MySqlCommand(query, con);
cmd.Parameters.AddWithValue("@ward_no", ward_no);
MySqlDataReader reader = cmd.ExecuteReader();
DataTable dt = new DataTable();
if (reader.Read())
{
txtward.Text = reader["ward_no"].ToString();
txtpart.Text = reader["part_no"].ToString();
txtleadername.Text = reader["part_leader1_name"].ToString();
txtphne1.Text = reader["part_leader1_mob"].ToString();
txtname1.Text = reader["part_leader2_name"].ToString();
txtphneno.Text = reader["part_leader2_mob"].ToString();
txtstreets.Text = reader["t_streets"].ToString();
txtfamilies.Text =reader["t_families"].ToString();
txttotvotes.Text = reader["t_electoral"].ToString();
txtMen.Text = reader["t_male"].ToString();
txtWomen.Text = reader["t_female"].ToString();
txtothers.Text = reader["t_others"].ToString();
}
}
}
这是我的编码,用户在点击提交按钮后在上一页中输入数据后我从数据库中获取数据我将它们重定向到下一页这个页面,问题是数据将被插入到数据库中,但是从数据库中检索数据将无法正常工作。使用查询中的where条件获取数据,条件的对象来自使用会话的上一页。问题是数据没有显示在文本框中
答案 0 :(得分:2)
您的代码中的修正很少:
int.TryParse()
代替Convert.To..()
。reader.HasRows
。或使用While(reader.Read())
:使用DataReader检索数据涉及创建实例 Command对象,然后通过调用创建DataReader Command.ExecuteReader用于从数据源检索行。该 下面的示例说明了使用DataReader所在的读者 表示有效的DataReader,命令表示有效的Command 对象
Parameters.Add()
instead for Parameters.AddWithValue()
所以你的代码看起来像这样(这也可以解决你的问题):
int ward_no=0;
int.TryParse(Session["wardno"].ToString(), out ward_no);
string query = "select ward_no,part_no,part_leader1_name,part_leader1_mob,part_leader2_name,part_leader2_mob,t_streets,t_families,t_electoral,t_male,t_female,t_others from f_field_details where ward_no=@ward_no";
MySqlConnection con = new MySqlConnection(connstring);
con.Open();
MySqlCommand cmd = new MySqlCommand(query, con);
cmd.Parameters.Add("@ward_no", MySqlDbType.Int32).Value = ward_no; //this will be the type of field
MySqlDataReader reader = cmd.ExecuteReader();
DataTable dt = new DataTable();
while (reader.Read())
{
// assign values here
}