C# 获取数据列表中包含的文本框的值:我哪里出错了?

C# 获取数据列表中包含的文本框的值:我哪里出错了?,c#,asp.net,webforms,C#,Asp.net,Webforms,我试图将insert命令的参数设置为DataList控件中包含的文本框的值。@下面是我查找相关控件并检索其值的尝试 protected void SqlDataSource1_Inserting(object sender, SqlDataSourceCommandEventArgs e) { TextBox Amt = (TextBox)DataList1.Items[0].FindControl("RadTextBox1"); e.Command.Parameter

我试图将insert命令的参数设置为DataList控件中包含的文本框的值。@下面是我查找相关控件并检索其值的尝试

    protected void SqlDataSource1_Inserting(object sender, SqlDataSourceCommandEventArgs e)
{
    TextBox Amt = (TextBox)DataList1.Items[0].FindControl("RadTextBox1"); 
    e.Command.Parameters["@Amount"].Value = Convert.ToDecimal(Amt.Text);
  }
上面的代码示例不起作用,但也不返回任何语法错误。我怀疑我在尝试获取textbox值时出错,因为如果我将@Amount参数设置为某个任意值,insert语句就可以正常工作。有人能告诉我我的错误以及如何改正吗

//每个注释的附加代码

数据列表:

<asp:DataList ID="DataList1" runat="server" DataSourceID="SqlDataSource1"><ItemTemplate>

        <telerik:RadTextBox ID="RadTextBox1" runat="server" Text='<%# Eval("TotalProratedAmountDue") %>'>
        </telerik:RadTextBox>
        </ItemTemplate>
    </asp:DataList>

可能是因为您正在寻找RadTextBox1,但ID是RadTextBox2


如果Amt.Text返回空值,则Convert.ToDecimal(Amt.Text)将返回0。但是我不确定你所说的“上面的例子不起作用”是什么意思。你的意思是没有插入任何记录?

好的开始-你的代码引用了RadTextBox1,但在你的标记中它的RadTextBox2

你能发布你的完整代码吗?问题是没有插入任何记录。此外,对RadTextBox2的引用是复制粘贴错误。正确的数据列表代码现在出现在上面。谢谢!这就是问题所在。如果我将TextBox更改为RadTextBox,它将正常工作。我会接受你上面的回答。
public void RadButton2_Click(object sender, EventArgs e)
{
    SqlDataSource1.Insert();
}