2012-09-28 69 views
0

我有一個GridView1,我從後面的代碼綁定。列在GridView的一個取決於Label1.Text如下:如何填充GridView中的選定列並從代碼後面更新?

SqlCommand comd = new SqlCommand("SELECT Location_Profile_Name, " + Label1.Text + " FROM Home_Profile_Master", con); 
SqlDataAdapter da = new SqlDataAdapter(comd); 
DataTable dt = new DataTable(); 
da.Fill(dt); 
GridView1.DataSource = dt; 
GridView1.DataBind(); 

爲同一的ASPX代碼:

<asp:TemplateField HeaderText="Location_Profile_Name" 
SortExpression="Location_Profile_Name"> 
<ItemTemplate> 
<asp:Label ID="Label1" runat="server" 
Text='<%# Bind("Location_Profile_Name") %>'></asp:Label> 
</ItemTemplate> 
</asp:TemplateField> 
<asp:TemplateField HeaderText="Home_Profile" SortExpression="Label10"> 
<ItemTemplate> 
<asp:Label ID="Label2" runat="server" Text='<%# Bind("Home_Profile") %>'></asp:Label> 
</ItemTemplate> 
<EditItemTemplate> 
<asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("Home_Profile") %>'></asp:TextBox> 
</EditItemTemplate> 
</asp:TemplateField> 

我得到一個錯誤的aspx頁面爲:數據綁定: 'System.Data.DataRowView'不包含名爲'Home_Profile'的屬性。

我無法找出錯誤是什麼。請幫助...!謝謝。

+0

你肯定這個'的SqlCommand( 「SELECT Location_Profile_Name,」 + Label1.Text + 「FROM Home_Profile_Master」,CON);'?不能'Label1.Text'變得粗糙? :) – Vyktor

+0

是基於'Label1.Text'是另一個我想要填充的數據塊。 –

回答

1

您在查詢錯過 'Home_Profile'。

SqlCommand comd = new SqlCommand("SELECT Location_Profile_Name," + Label1.Text + " as Home_Profile FROM Home_Profile_Master", con); 
+0

這不會在我的Grid中生成3列嗎? –

+0

它說無效的列名稱Home_Profile。而且我沒有在數據庫 –

+0

Home_Profile列它不會在你的GridView生成三列,你已經明確宣佈項目模板,並將其yhat你所提到的「<%#綁定(‘Home_Profile’)%>」,但您沒有提供數據從您的查詢 –

1

你shuld在數據表Home_Profile列試試這個

SqlCommand comd = new SqlCommand("SELECT Location_Profile_Name,Home_Profile, " + Label1.Text + " FROM Home_Profile_Master", con); 
+0

這不會在我的網格中生成3列嗎? –

+0

它說無效的列名稱Home_Profile。而且我沒有數據庫中的Home_Profile列 –

相關問題