2011-10-14 14 views
10

Wykonuję kwerendę, aby uzyskać tytuł i odpowiedź z tabeli tbl_message, chcę odszyfrować tytuł, zanim wykonam wiązanie z danymi do repeatera. Jak mogę uzyskać dostęp do wartości tytułu przed zrobieniem databind.Uzyskaj pojedynczą wartość z zestawu danych w asp.net

string MysqlStatement = "SELECT Title, RespondBy FROM tbl_message WHERE tbl_message.MsgID = @MsgID"; 

using (DataServer server = new DataServer()) 
{ 
    MySqlParameter[] param = new MySqlParameter[1]; 
    param[0] = new MySqlParameter("@MsgID", MySqlDbType.Int32); 
    param[0].Value = MessageID; 
    command.Parameters.AddWithValue("@MsgID", MessageID); 
    ds = server.ExecuteQuery(CommandType.Text, MysqlStatement, param); 
} 
rptList.DataSource = ds; 
rptList.DataBind(); 


    <table style="width: 498px; color: #F5F5F5;"> 
     <asp:Repeater ID="rptList" runat="server"> 
      <HeaderTemplate> 
      </HeaderTemplate> 
      <ItemTemplate> 
       <tr> 
        <td width="15%"> 
         <b>Subject</b> 
        </td> 
        <td width="60%"> 
         <asp:Label ID="lbl_Subj" runat="server" Text='<%#Eval("Title")%>' /> 
        </td> 
       </tr> 
+1

ds [0] ["Tytuł"]? – Rob

+1

W swoim kodzie wstawiłeś Extra "," po "RespondBy". Czy zapytanie działa poprawnie? –

Odpowiedz

16

Prawdopodobnie, jak po części kodu można uzyskać tytuł i spróbuj tego kodowania przed

rptList.DataSource = ds; 
    rptList.DataBind(); 

dalszej części kodu mogą uzyskać tytuł od dataset

string title = ds.Tables[0].Rows[0]["Title"].ToString(); 
0

Nie wiesz co masz na myśli odszyfrowanie, ale jeśli chcesz zmodyfikować Tytuł, stosując na nim pewną logikę, zamiast wiązania tekstu z Tytułem możesz stworzyć metodę, która bierze Tytuł jako wejście d zwraca odszyfrowany tekst. Możesz związać etykietę z tą metodą, przekazując jej tytuł.

2

string title = ds.Tables [0] .Rows [0] [0] .ToString();

Użyłem indeksu zamiast nazwy tytułu. Osobiste preferencje.

Powiązane problemy