Hai diverse soluzioni...
nella tua query recuperi direttamente i primi N caratteri che vuoi mostrare e assegni il campo in questione alla tua label fai
Esempio:
SELECT campo1, campo2, LEFT(campo2, 30) AS campo2label FROM tabella
e alla tua label assegni il "nuovo" campo
campo2label.
Se proprio vuoi fare una finezza... potresti pensare ad un controllo e se il campo è più lungo dei tu N caratteri, aggiungi anche dei puntini di sospensione:
LEFT(campo2, 30) + '...' AS campo2label
La stessa cosa la puoi fare con un metodo che ti crei in C# e richiami nell'evento ItemDataBound del tuo gridview o che esponi nella tua label a design:
<asp:TemplateField HeaderText="CAMPO 2">
<ItemTemplate>
<asp:Label runat="server" ID="labelCampo2" Text='<%# miaFunzione(Eval("campo2"), 30) %>' />
</ItemTemplate>
</asp:TemplateField>
Questi sono i primi 2 metodi che mi sono venuti in mente...
ciao