基本上,我有一个 Gridview。我正在获取特定单元格的文本值并放入一个 asp 标签。
现在我想使用该标签的文本作为 SqlDatasource 上的存储过程的输入,如下所示
<asp:SqlDataSource ID="AddressContactSource"
runat="server"
ConnectionString="<%$ ConnectionStrings:UACOrdersConnectionString %>"
SelectCommand="GetAddressContact"
SelectCommandType="StoredProcedure">
<SelectParameters>
<asp:ControlParameter ControlID="Silver"
Name="@AccountID"
PropertyName="Text"
Type="Int32" DefaultValue="2624" />
</SelectParameters>
</asp:SqlDataSource>
问题是这不起作用,因为 AccountID(存储过程的输入参数)是 int32 并且标签的文本是字符串,因此它不会在绑定到 SqlDatasource 的详细信息视图中显示任何结果。
现在,我在放置单元格的网格视图的代码隐藏中更改了选定索引的方法。
protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{
string temp = GridView1.Rows[1].Cells[5].Text;
Silver.Text = temp;
int temp2 = Convert.ToInt32(temp, 10);
Parameter p = new Parameter();
p.Direction = ParameterDirection.Input;
p.Type = TypeCode.Int32;
p.Name = "@AccountID";
AddressContactSource.SelectParameters.Add(p);
AddressContact.DataBind();
updatepanel1.Update();
}
我的代码编译并且在调试时也不会抛出任何异常。我知道这很接近,但 Parameter 没有采用 int 的构造函数。所以我不能添加它。那么,我该怎么办?