السلام عليكم ورحمة الله وبركاته
لقد استخدمت لغة c# وقاعدة بيانات أكسيس 2003
واستخدمت لعرض البيانات من الجدول الرئيسي repeater ولعرض البيانات من الجدول الفرعي استخدمت RadioButtonList .
استخدمت الكود التالي للاتصال بالقاعدة وربط الجدولين واستدعاء البيانات
<code>
OleDbConnection myConnection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source= NWIND_RW.MDB");
myConnection.Open();
OleDbTransaction myTrans = myConnection.BeginTransaction();
string mySelectQuery = "SELECT * FROM quis ";
OleDbCommand myCommand = new OleDbCommand(mySelectQuery,
myConnection,myTrans);
myCommand.CommandTimeout = 20;
OleDbDataAdapter adp1 = new OleDbDataAdapter(myCommand) ;
DataSet ds = new DataSet("myDataSet");
adp1.Fill(ds,"q") ;
string mySelectQuery1 = "SELECT * FROM answer ";
OleDbCommand myCommand1 = new OleDbCommand(mySelectQuery1,
myConnection,myTrans);
myCommand1.CommandTimeout = 20;
OleDbDataAdapter adp2 = new OleDbDataAdapter(myCommand1) ;
adp2.Fill(ds,"a") ;
ds.Relations.Add("myrelation",ds.Tables["q"].Columns["q_nu"],ds.Tables["a"].
Columns["q_n"]);
RP1.DataSource = ds ;
RP1.DataBind();
</code>
وهذا كود الهتميل
<code>
<asp:Repeater id="RP1" runat="server">
<ItemTemplate>
<table>
<tr>
<td bgcolor="SkyBlue" width="100"
align="center">
<%# DataBinder.Eval (
Container.DataItem, "q_t")%>
</td>
</tr>
<tr>
<td>
<asp:RadioButtonList ID="
RB" DataSource= '<%#((System.Data.DataRowView)Container.DataItem).Row.GetChildRows("myrelation")%>'
DataTextField = 'a_t' Runat="server">
</asp:RadioButtonList>
</td>
</tr>
</table>
</ItemTemplate>
</asp:Repeater>
واستخدمت الحقل "a_t" من قاعدة البيانات لملأ RadioButtonList
المشكلة تظهر الرسالة التالية :
DataBinder.Eval: 'System.Data.DataRow' does not contain a property with the name a_t.
وسطر الخطأ هو
RP1.DataBind();
أتمنى ان أجد حلا لها .
وتقبلوا تحياتي ،،، أبو محمـد