У меня есть повторитель, который я пытаюсь показать данные на основе оператора SQL.Однако по какой-то причине, если у меня есть несколько строк одной записи в повторителе, он показывает только одну.Например:
В базе данных (informix) :
- Удержание заработной платы 250,00
- Удержание заработной платы 250,00
- Заработная платаУдержание 250,00
- Заработная плата Удержание 250,00
- Медицинская страховка студента 1100,00
Отображается в репитере:
- Удержание из заработной платы 250,00
- Медицинское страхование студентов 1100,00
Есть идеи, почему это может быть?SQL, который я использую в коде (ниже), прекрасно работает, когда я запускаю его в базе данных.
private DataTable GetCreditData ( string id, string sessyr )
{
OdbcConnection conn = new OdbcConnection ( );
conn.ConnectionString = cxConnStr;
// Define our SQL
String sql = "select ABS(t1.amt) as amt , t2.txt from subtr_rec t1, subt_table t2 where t1.subs = 'S/A' and t1.tot_prd = ? and t1.subs_no=? and t1.amt < 0 and t1.tot_code = t2.tot_code and t1.subs = t2.subs UNION select t1.amt, t2.txt from aid_rec t1 join aid_table t2 on t1.aid=t2.aid where t1.sess =? and t1.yr = ? and t1.id = ? and ((stat='A' and amt_stat='AA') or (stat='I' or amt_stat='AA'))";
// Command
OdbcCommand command = new OdbcCommand ( );
command.Connection = conn;
command.CommandText = sql;
command.Parameters.Add ( new OdbcParameter ( "sess", sessyr ) );
command.Parameters.Add ( new OdbcParameter ( "id", id ) );
command.Parameters.Add ( new OdbcParameter ( "sess2", CurrSess ) );
command.Parameters.Add ( new OdbcParameter ( "yr", CurrentYr ) );
command.Parameters.Add ( new OdbcParameter ( "id2", id ) );
// Create a DataTable to store our Cached results.
DataTable dt = new DataTable ( );
// Create a DataAdapter used to fill the DataTable
OdbcDataAdapter dataAdapter = new OdbcDataAdapter ( );
// Associate the DataAdapter and select command created above
dataAdapter.SelectCommand = command;
try
{
// Open Database.
conn.Open ( );
// Fill DataTable.
dataAdapter.Fill ( dt );
}
catch ( Exception ex )
{
edException.Error = ex;
this.ParentPortlet.ShowFeedback ( FeedbackType.Message, "There was an error looking up term credits." );
}
finally
{
if ( conn != null && conn.State == ConnectionState.Open )
{
// Release our resources (close db connection)
conn.Close ( );
}
}
return dt;
}
Здесь таблица данных привязана к повторителю (page_load):
DataTable creditdata = GetCreditData ( Host, CurrSess + CurrentYr.Remove ( 0, 2 ) );
TermCredits.DataSource = creditdata;
TermCredits.DataBind ( );