C# 输入字符串的格式不正确,无法检索gridview值
在我的网格视图中,当用户单击activate时,我希望它导航到activate.aspx页面。我想从上一页中检索三个值以激活.aspx页面。我的代码是:C# 输入字符串的格式不正确,无法检索gridview值,c#,asp.net,gridview,C#,Asp.net,Gridview,在我的网格视图中,当用户单击activate时,我希望它导航到activate.aspx页面。我想从上一页中检索三个值以激活.aspx页面。我的代码是: protected void Page_Load(object sender, EventArgs e) { if (this.Page.PreviousPage != null) { int rowIndex = int.Parse(Request.QueryString[
protected void Page_Load(object sender, EventArgs e)
{
if (this.Page.PreviousPage != null)
{
int rowIndex = int.Parse(Request.QueryString["RowIndex"]);
GridView GridView1 = (GridView)this.Page.PreviousPage.FindControl("GridView1");
GridViewRow row = GridView1.Rows[rowIndex];
Label1.Text = row.Cells[3].Text;
Label2.Text = row.Cells[2].Text;
Label3.Text = row.Cells[2].Text;
SqlDataAdapter da = new SqlDataAdapter("insert into login values('" + Label1.Text + "','" + Label2.Text + "','" + Label3.Text + "')",con);
DataSet ds = new DataSet();
da.Fill(ds);
}
}
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "Redirect")
{
String email = "lblemail.Text";
String mob = "lblmobno.Text";
Server.Transfer("activate.aspx?RowIndex=" + email +mob, true);
}
}
Aspx标记
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false"
onrowcommand="GridView1_RowCommand">
<Columns>
<asp:TemplateField HeaderStyle-Font-Bold="true" HeaderStyle-Font-Size="Larger" HeaderText="Activate/Delete"
ItemStyle-Width="150px">
<ItemTemplate>
<asp:LinkButton ID="linkbutton1" runat="server" Text="Activate" CommandName="Redirect"
CommandArgument='<%# DataBinder.Eval(Container, "RowIndex") %>'></asp:LinkButton>
<span onclick="return confirm('Are You sure want to Delete?')">
<asp:LinkButton ID="linkbutton2" runat="server" Text="Delete" CommandName="Delete"></asp:LinkButton>
</span>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
请帮助我。这是因为您在RowIndex中发送文本/字符串,而作为RowIndex,即访问Rows集合的索引应为整数。 传递到rowindex的是“lblemail.textlobno.Text”,当您试图将其解析为int时,它会抛出一个明显的错误 更新:好的,您不需要传递行索引 第一项更改:
String email=lblEmail.Text;
String mob=lblMob.Text;
第二个变化:-
protected void Page_Load(object sender, EventArgs e)
{
String email= Request.QueryString["email"];
String mobNumber= Request.QueryString["mob"];
String yourThirdParameter = Request.QueryString["thirdOne"]; // Provide your third parameter.
SqlDataAdapter da = new SqlDataAdapter("insert into login values('" + email + "','" + mob + "','" + yourThirdParameter + "')",con);
// Assuming this is the sequence.you can change it your way.
DataSet ds = new DataSet();
da.Fill(ds);
}
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "Redirect")
{
String email = lblemail.Text;
String mob = lblmobno.Text;
String thirdOne= // Fill it as is the need
Server.Transfer("activate.aspx?email=" + email+"&mob=" +mob+"&thirdOne="+thirdOne, true);
}
}
将querystring参数重命名为更有意义的全名(我在下面的代码中将其重命名为rowIndex以发送电子邮件)
第三个变化:-
protected void Page_Load(object sender, EventArgs e)
{
String email= Request.QueryString["email"];
String mobNumber= Request.QueryString["mob"];
String yourThirdParameter = Request.QueryString["thirdOne"]; // Provide your third parameter.
SqlDataAdapter da = new SqlDataAdapter("insert into login values('" + email + "','" + mob + "','" + yourThirdParameter + "')",con);
// Assuming this is the sequence.you can change it your way.
DataSet ds = new DataSet();
da.Fill(ds);
}
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "Redirect")
{
String email = lblemail.Text;
String mob = lblmobno.Text;
String thirdOne= // Fill it as is the need
Server.Transfer("activate.aspx?email=" + email+"&mob=" +mob+"&thirdOne="+thirdOne, true);
}
}
提醒:-我怀疑如果您必须同时传递密码,则不应使用QueryString。
此外,在QueryString中传递电子邮件、手机号码也是不可取的
if (e.CommandName == "Redirect")
{
String email = "lblemail.Text";
String mob = "lblmobno.Text";
Server.Transfer("activate.aspx?RowIndex=" + email +mob, true);
}
在这里,您可以看到您将电子邮件和移动值作为查询字符串值发送,因此您的查询字符串如下所示
activate.aspx?RowIndex=lblemail.textlobno.Text
当您得到rowindex值时,它将返回lblemail.textlobno.Text作为一个值,调试它并观察它,您将看到它,所以现在您需要做的就是从正在使用的gridview中传递int值
您还可以使用隐藏字段,并从GridView1\u行命令中找到它
我希望这将有助于您理解……:)为什么要将电子邮件和暴民作为行索引传递?除了email和mob之外,您希望传递哪些值来激活.aspx?在
int RowIndex=int.Parse(Request.QueryString[“RowIndex”])中的Request.QueryString[“RowIndex”]
是什么
Request.QueryString[“RowIndex”]中的值是什么?他将emial+mob号码作为RowIndex传递我将电子邮件和mob作为行索引传递,因为我想在下一页中检索它们,即activate.aspx。我想将这些值存储在名为login的数据库表中,该表有三列用户名,pwd和mob_no.在activate.aspxAnswer的加载事件中,没有正确使用“RowIndex应该是int”这是什么意思?请举例说明您的答案。我如何修复此错误。你能举个例子告诉我吗。请帮助我你需要通过电子邮件,暴民和?这是一个词。sql命令中的顺序是什么?这段代码将lblemail.text、lblmobno.text存储到表中,而不是实际值。