在form1中
private void Form1_Load(object sender, System.EventArgs e)
{
TreeNode root = new TreeNode("联系人");
treeView1.Nodes.Add(root);
inittree(root,0);

}
//初始化树
private void inittree(TreeNode node,int pid)
{
dbconnection dbconn = new dbconnection();
string sql = "select * from lulu";
DataTable dt = dbconn.getdata(sql);
DataRow[] drs = dt.Select("pid="+pid.ToString());     
foreach(DataRow dr in drs)
{
TreeNode newnode = new TreeNode();
newnode.Text = dr["username"].ToString();
node.Nodes.Add(newnode);
inittree(newnode,(int)dr["userid"]);
}
}
在dbconnection中public dbconnection()
{
string str = ConfigurationSettings.AppSettings["strconn"].ToString();
conn = new SqlConnection(str);
}
public DataTable getdata (string strsql)
{
//数据适配器对象
SqlDataAdapter sda = new SqlDataAdapter(strsql,conn);
DataTable dt = new DataTable();//创建一个数据表
//把数据填充到数据表
sda.Fill(dt);
return dt;

}
编译的时候说在fill这系统错误。我的select语句可以的
什么问题大家帮下好么 谢谢了

解决方案 »

  1.   

    呵呵,不犯规string str = ConfigurationSettings.AppSettings["strconn"].ToString();你检查了这句话吗?
    在web.config中有这个strconn吗?
      

  2.   

    不太明白估计就有可能这里出问题了。
    你的数据库连接语句在哪?
    config文件里面配置了没有?
      

  3.   

    数据库打开了没?
    conn.open();
      

  4.   

    SqlDataAdapter 表示用于填充 DataSet                           
                                //数据适配器对象
    SqlDataAdapter sda = new SqlDataAdapter(strsql,conn);
    DataSet dt = new DataSet();//创建一个数据表
    //把数据填充到数据表
    sda.Fill(dt);
    return dt.Tables[0];
      

  5.   

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
    <appSettings>
    <add key = "strconn" value = "server=COMPUTER;uid=;pwd=;database=dianhuaben"></add>
    </appSettings>
    </configuration>
    这是我的config没问题的
      

  6.   

    还有在这里数据库连接是不用写的会自动连的
    DataSet dt = new DataSet();//创建一个数据表
    这个也不行,类型不一致
      

  7.   

    我登陆SQLSERVER 时是用WINDOWS登陆的?那个UID是不是设置成跟用户名一样的吗?