我想更新一个球员得分的进球数,因此,如果他为某个进球设定了进球数,我想对他的进球数进行更新... 我的代码中有一个错误,我不知道如何解决。有人可以帮我修复它吗?
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 UserID";
OleDbCommand sqlCmd = new OleDbCommand(queryStr, sqlCon);
sqlCmd.Parameters.AddWithValue("@AchNums", (SoccerTable.FooterRow.FindControl("txtAchNumsFooter") as TextBox).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((SoccerTable.FooterRow.FindControl("txtAchNumsFooter") as TextBox).Text.Trim());
a = a + int.Parse("@AchNums");
string query = "UPDATE SoccerAchievements SET Achievement= '" + a + "' WHERE UserID";
sqlCmd.ExecuteNonQuery();
<asp:GridView ID="SoccerTable" runat="server" AutoGenerateColumns="False"
BackColor="White" BorderColor="#CCCCCC" BorderStyle="None" BorderWidth="1px"
CellPadding="3" DataSourceID="AccessDataSource1">
<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>
<FooterTemplate>
<asp:TextBox ID="txtAchNumsFooter" runat="server" />
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:Button class = "AddButton" ID="AddButton" runat="server" onclick="AddButton_Click" Text="עדכן" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
请帮助我:(
答案 0 :(得分:0)
如果您希望在一个空的文本框中将其默认设置为0:
int i = string.IsNullOrEmpty((SoccerTable.FooterRow.FindControl("txtAchNumsFooter") as TextBox).Text.Trim()) ? 0 : int.Parse((SoccerTable.FooterRow.FindControl("txtAchNumsFooter") as TextBox).Text.Trim());
如果您希望使用任何格式错误的输入将其默认设置为0:
int i;
if (!int.TryParse((SoccerTable.FooterRow.FindControl("txtAchNumsFooter") as TextBox).Text.Trim(), out i)) i = 0;
答案 1 :(得分:0)
@Alex好像是该行的格式异常 int a = int.Parse((SoccerTable.FooterRow.FindControl(“ txtAchNumsFooter”)as TextBox).Text.Trim());。
在您的情况下,可能是文本框返回的值不是有效的整数值。这就是为什么您会收到此错误。
您能否尝试调试代码并对此语句'SoccerTable.FooterRow.FindControl(“ txtAchNumsFooter”)作为TextBox).Text.Trim()进行快速监视。检查您得到什么。