2012-06-20 87 views
0

我试图将数据加载到文本框中,同时选择下拉列表,我创建了一个用于检索的类,并在下拉列表中将所选的索引更改为名称。但我无法得到我想要的答案。如果我已经在按钮单击事件中调用该类,它已正常工作。所以请纠正我。我犯了一个错误。这是我的代码:从数据库中检索C#数据错误

public void so() 
    { 
     con.Open(); 
     string s2; 
     s2 = "select Source from tbl_component where Componetcode='" + Mcodeddl.SelectedItem.Text + "'"; 
     SqlCommand c2 = new SqlCommand(s2, con); 
     SqlDataReader d2; 
     d2 = c2.ExecuteReader(); 
     while (d2.Read()) 
     { 
      TextBox1.Text = d2["Source"].ToString().Trim(); 

     } 
     d2.Close(); 
     con.Close(); 
    } 

//i have called the so class here 

protected void Mcodeddl_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     so(); 
    } 
+1

什么是错误报告? –

+0

查询Componetcode在* Componentcode *中是否存在拼写错误?然后你需要询问注入 –

+0

有什么例外?你有没有调试过你的代码? – Talha

回答

2

您应该设置一个断点您Mcodeddl_SelectedIndexChanged方法里面,看看是否被触发的情况下,也确保包括AutoPostBack="true"在下拉列表定义

+0

谢谢的aspx页面的一部分。我忘了检查自动发回的朋友。再次感谢 – user1455232

+0

不用客气 – uowzd01

+1

为什么我的答案是这样的呢?它似乎不够好 – Habib

1

确保您已在aspx页面

<asp:DropDownList ID="Mcodeddl" runat="server" 
    OnSelectedIndexChanged= "Mcodeddl_SelectedIndexChanged"> 
</asp:DropDownList> 

指定OnSelectedIndexChanged事件下拉还使用parameterized SQL查询。

PS。你的SO();是一种不是一个类的方法。

+1

我在 – user1455232

+1

@ user1455232之前完成了它,发布了包含下拉列表 – Habib

1

我已经得到了答案。我详细说明了我所做的事情。 “Set AutoPostBack = True”