【发布时间】:2016-02-24 14:54:06
【问题描述】:
我正在使用 Telerik 报告,并且我有一张桌子。 textbox16 具有我需要在查询中使用的值来设置 textbox26 上的值。每行在 textbox16 (unique) 上都有不同的值。
问题是在 textbox26 上我得到了所有行的错误值!
当我在 textbox26_itemdatabound 中调试我的程序时,会放入正确的值。
我做错了什么以及如何解决?
MySqlConnection con = new MySqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["stockConnectionString"].ConnectionString);
private void textBox26_ItemDataBound(object sender, EventArgs e)
{
decimal balance = 0, debit = 0;
Telerik.Reporting.Processing.TextBox textBox = (Telerik.Reporting.Processing.TextBox)sender;
string text = textBox.Text;
textBox26.Value = text;
string querty = "SELECT Sum(st.Debit),comp.balance FROM statemnt st left join companie comp on st.accountcode=comp.code and comp.type=1 " +
"where st.accountcode=@compcode and (Date(st.DocDate)>=(CURDATE() - interval 30 day)) ";
MySqlCommand cmd = new MySqlCommand(querty, con);
cmd.Parameters.AddWithValue("compcode", text);
con.Open();
MySqlDataReader Reader = cmd.ExecuteReader();
if (!Reader.HasRows)
{
return;
}
while (Reader.Read())
{
try
{
debit = Convert.ToDecimal(Reader.GetString(0));
}
catch { debit = 0; }
try
{
balance = Convert.ToDecimal(Reader.GetString(1));
this.textBox26.Value = balance.ToString("#.##");
}
catch
{
balance = 0;
}
}
Reader.Close();
con.Close();
if (balance <= 0)
{
this.textBox26.Value = "0.00";
this.textBox26.Value = "0.00";
this.textBox26.Value = "0.00";
this.textBox26.Value = "0.00";
this.textBox26.Value = "0.00";
return;
}
else
{
if (debit < balance)
{
balance = balance - debit;
this.textBox26.Value = debit.ToString("#.##");
}
}
}
private void textBox16_ItemDataBound(object sender, EventArgs e)
{
textBox26.Value = textBox16.Value;
}
结果:
【问题讨论】:
-
textBox.text 是用户输入吗?为什么要连续 5 次将值 0.00 分配给 textBox26?
-
textbox.text 不是用户输入。您看到的 5 次是针对 5 列,在我设法使用 textbox26 上的值执行此操作后,我将创建 textbox26-31我想输入我想要的值。
标签: c# textbox telerik report telerik-reporting