我想更新一个球员得分的进球数,所以如果他进球了,我想更新他的进球数...我的代码出错,我也不知道该怎么做修理它。有人可以帮我修复它吗?
protected void SoccerTable_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
string connectionStr = @"Provider=Microsoft.Jet.OleDb.4.0;Data Source=|DataDirectory|\SoccerDataBase.mdb";
using (OleDbConnection sqlCon = new OleDbConnection(connectionStr))
{
sqlCon.Open();
string queryStr = "SELECT Achievement FROM SoccerAchievements WHERE @id";
OleDbCommand sqlCmd = new OleDbCommand(queryStr, sqlCon);
sqlCmd.Parameters.AddWithValue("@id", Convert.ToInt32(SoccerTable.DataKeys[e.RowIndex].Value.ToString()));
sqlCmd.Parameters.AddWithValue("@NumOfGoals", (SoccerTable.Rows[e.RowIndex].FindControl("AchNums") as DropDownList).Text.Trim());
OleDbDataAdapter dataAdapt = new OleDbDataAdapter(sqlCmd);
DataSet ds = new DataSet();
dataAdapt.Fill(ds, "SoccerAchievement");
DataRow row = ds.Tables["SoccerAchievement"].Rows[0];
int a = int.Parse("@NumOfGoals");
string query = "UPDATE SoccerAchievements SET Achievement= '" + a + "' WHERE @id";
sqlCmd.ExecuteNonQuery();
}
}
<asp:GridView ID="SoccerTable" runat="server" AutoGenerateColumns="False"
ShowFooter="True" DataKeyNames="ID"
ShowHeaderWhenEmpty="True"
BackColor="White" BorderColor="#CCCCCC" BorderStyle="None" BorderWidth="1px"
CellPadding="3" DataSourceID="AccessDataSource1"
OnRowUpdating="SoccerTable_RowUpdating">
<Columns>
<asp:BoundField DataField="ID" HeaderText="קוד שחקן" InsertVisible="False"
SortExpression="ID" />
<asp:BoundField DataField="Team" HeaderText="קבוצות" SortExpression="Team" />
<asp:BoundField DataField="Players" HeaderText="שחקנים"
SortExpression="Players" />
<asp:TemplateField HeaderText="הישגים">
<ItemTemplate>
<asp:DropDownList ID="AchNums" runat="server">
<asp:ListItem>1</asp:ListItem>
<asp:ListItem>2</asp:ListItem>
<asp:ListItem>3</asp:ListItem>
<asp:ListItem>4</asp:ListItem>
<asp:ListItem>5</asp:ListItem>
<asp:ListItem>6</asp:ListItem>
<asp:ListItem>7</asp:ListItem>
<asp:ListItem>8</asp:ListItem>
<asp:ListItem>9</asp:ListItem>
<asp:ListItem>10</asp:ListItem>
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:ImageButton ID="ImageButton3" ImageUrl="Pictures/AdminToolsPics/save.png" runat="server" CommandName="Update" ToolTip="Update" Width="20px" Height="20px" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
请帮助我:)
答案 0 :(得分:1)
代码int a = int.Parse("@NumOfGoals");
将永远无法工作,因为函数int.Parse()
试图将字符串转换为和。因为字符串@NumOfGoals
不是全部字符串,该函数将引发异常。