c#:未知构造函数'Parameter(String, TypeCode, Int)'& # 39; S
本文关键字:Int TypeCode 未知 构造函数 Parameter String | 更新日期: 2023-09-27 18:02:21
在后面的代码中,我使用下面的代码来执行插入命令。其中两个参数值将在用户单击特定按钮时设置。我这样写是因为我想重用SqlDataSource
.
我的问题是这一行(@"Amount", TypeCode.Int16, amount)
。具体误差为C#: Unknown constructor Parameter(String, TypeCode, Int) of System.Web.UI.WebControls.Parameter
。有人能指出我做错了什么吗?或者,请告诉我我可以采取什么步骤来调试它。我卡住了。
protected void InsertFees_Inserting(object sender, SqlDataSourceCommandEventArgs e)
{
e.Command.Parameters["@UserID"].Value = Convert.ToInt16(RadGrid1.SelectedValues["UserID"].ToString());
e.Command.Parameters["@Type"].Value = "D";
e.Command.Parameters["@Date"].Value = DateTime.Now;
e.Command.Parameters["@Amount"].Value = "";
e.Command.Parameters["@Description"].Value = "";
}
protected void RadButton2_Click(object sender, EventArgs e)
{
try
{
int amount = Convert.ToInt16(RadNumericTextBox1.Text);
InsertFees.InsertParameters.Add(new Parameter("@Amount", TypeCode.Int16, amount));
InsertFees.InsertParameters.Add(new Parameter("@Description", TypeCode.String, RadTextBox2.Text));
InsertFees.Insert();
Label2.Text = "Insert Successful";
}
catch(Exception ex)
{
Panel1.Visible = true;
Label3.Text = ex.ToString();
}
}
int是Int32,而Int16是Short
int amount
不如试试这个?
short amount = Convert.ToInt16(RadNumericTextBox1.Text);
InsertFees.InsertParameters.Add(new Parameter("@Amount", TypeCode.Int16, amount));
或者…
int amount = Convert.ToInt32(RadNumericTextBox1.Text);
InsertFees.InsertParameters.Add(new Parameter("@Amount", TypeCode.Int32, amount));
http://www.dotnetperls.com/int16-int32-int64
我同意Bemused
的回答,但是您需要以这种方式将参数传递给SQLDataSource。
InsertFees.InsertParameters["Amount"].DefaultValue = amount.ToString();
当你添加参数像…InsertFees.InsertParameters.Add(new Parameter("@Amount", TypeCode.Int16, amount));
,它将再次向Insert parameters集合添加参数,该集合已经在SQLDataSource InsertParameter集合