Ich erhalte die Fehlermeldung „Eingabezeichenfolge war nicht in einem korrekten Format“ auf der Linie Empfang:Warum bin ich „Input-String nicht in der richtigen Format“, während retreiving Gridview Zeilenindex
int index = Convert.ToInt32(e.CommandArgument);
Mein Ziel ist es, Erhalte die ID (sowohl Buchstaben als auch Zahlen) aus meiner Gridview (Zelle 1 der ausgewählten Zeile), um die Datensätze in dem DB zu verarbeiten, der dieser ID zugeordnet ist.
Die meisten der Seiten, die ich gefunden habe, sagte, den obigen Code zu verwenden, um die Zeilennummer für Gridview zu finden.
Meine aspx Seite:
<asp:gridview ID="gridview1" runat="server" DataKeyNames="ID" AutoGenerateColumns="false" OnRowCommand="gridview1_RowCommand">
<columns>
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton ID="btn_select" runat="server" Text="Select" CommandName="Select" />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField HeaderText="Record_ID" DataField="ID" />
<asp:BoundField HeaderText="Record_Date" DataField="Date" />
</Columns>
</asp:gridview>
My-Code Behind:
SqlCommand cmd = new SqlCommand();
protected void Page_Load(object sender, EventArgs e)
{
//code stuff
final();
}
protected void final()
{
//code stuff for populating the gridview. Gridview populates as expected.
}
protected void gridview1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "Select")
{
int index = Convert.ToInt32(e.CommandArgument);//where I receive the error.
string id = gridview1.Rows[index].Cells[1].Text;
using (SqlConnection connection string)
{
try
{
cmd = new SqlCommand("DBSP", connection);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@id", SqlDbType.Char).Value = id;
connection.Open();
cmd.ExecuteNonQuery();
connection.Close();
final();
}
catch (Exception ex)
{
//code stuff
}
}
}
}
Ein paar andere Dinge, die ich versucht habe, sind von:
Accessing GridView Cells Value
How to get cell value in GridView (WITHOUT using cell index)
Get the cell value of a GridView row
Getting value from a Gridview cell
sowie andere.
Wissen Sie, was der Wert von 'e.CommandArgument' ist? Klingt so, als ob es einen oder mehrere Buchstaben enthalten könnte. Wenn das der Fall ist, müssen Sie eine Regex oder etwas verwenden, um die Ziffern zu isolieren. –
@EdPlunkett, ja, das erste Zeichen der ID ist ein Alpha-Zeichen. – user3549282