偶的操作数据库的类
using System.Text;
using System.Data;
using System.Data.SqlClient;namespace 网上选课系统
{
    class DatabaseLink
    {
        //连接字符串
        private string LinkStr = "Data Source=202.207.177.172,1433;Database = studentclass;User ID = 'sa';Password = 'sa';";
        private SqlConnection MyCon;
        private DataSet MySet;        //--------------断开式访问,查询数据(sql语句,表名)---------
        public DataSet selectdatabase(string constr, string tablename)
        {
            MySet = new DataSet();
            MySet.Clear();
            MyCon = new SqlConnection(LinkStr);
            SqlDataAdapter Myadapter = new SqlDataAdapter(constr, MyCon);            try
            {
                Myadapter.Fill(MySet, tablename);
                return MySet;
            }
            catch
            {
                return null;
            }
            finally
            {
                MyCon.Dispose();
                Myadapter.Dispose();
            }
        }        //-------------直接查询数据(sql语句)-------------
        public DataTable selectdatabase(string constr)
        {
            MyCon = new SqlConnection(LinkStr);
            MySet = new DataSet();
            //MySet.Clear();
            SqlDataAdapter MyAdapter = new SqlDataAdapter(constr,MyCon);            try
            {
                MyAdapter.Fill(MySet);
                return MySet.Tables[0];
            }
            catch
            {
                return null;
            }
            finally
            {
                MyCon.Dispose();
                MyAdapter.Dispose();
            }
        }
    }
}函数使用
private void FillTreeView()
        {
            string SelStr = "SELECT DepartmentID, DepartmentName FROM Department";
            MyTable = MyLink.selectdatabase(SelStr);
            int count = MyTable.Rows.Count;
            
            if (count > 0)
            {
                for (int i = 0; i < count; i++)
                {
                    string DepartmentID = MyTable.Rows[i]["DepartmentID"].ToString();
                    string NodeName = MyTable.Rows[i]["DepartmentName"].ToString();
                    TreeNode MyNode = new TreeNode(NodeName);
                    this.treeView1.Nodes.Add(MyNode);
                   
                    AddTreeViewNode(MyNode,DepartmentID);
                }
            }
        }
提示我说表里面没有列DepartmentID
我单步调试 发现MyTable的维数是0
请问大家这是什么情况 谢谢!

解决方案 »

  1.   

    改成://连接字符串
            private string LinkStr = "Data Source=202.207.177.172,1433;Database = studentclass;User ID = sa;Password = sa";试试..
      

  2.   

    我用你写的这个类作了个测试,并未发现你所说的错误,测试过程如下:修改的地方:
    1.我用的本地数据库,所以将连接字符串改了下,如下:
    //连接字符串
            private string LinkStr = "Data Source=.;Database = student;User ID = 'sa';Password = '0421';";2.我在界面上放了一个DataGridView,从数据库中取出数据,然后绑定到DataGridView,测试代码如下:
    按钮单击事件下实现绑定:
    private void button1_Click(object sender, EventArgs e)
            {
                DatabaseLink myLink = new DatabaseLink();
                string SelStr = "select * from studentDetails";
                DataTable dt = new DataTable();
                dt = myLink.selectdatabase(SelStr);
                this.dataGridView1.DataSource = dt;
            }测试成功,可以成功取到数据...
      

  3.   

    全部代码如下:using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using System.Data.SqlClient;namespace TestDataBase
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }        private void button1_Click(object sender, EventArgs e)
            {
                DatabaseLink myLink = new DatabaseLink();
                string SelStr = "select * from studentDetails";
                DataTable dt = new DataTable();
                dt = myLink.selectdatabase(SelStr);
                this.dataGridView1.DataSource = dt;
            }
        }
        class DatabaseLink
        {
            //连接字符串
            private string LinkStr = "Data Source=.;Database = student;User ID = 'sa';Password = '0421';";
            private SqlConnection MyCon;
            private DataSet MySet;        //--------------断开式访问,查询数据(sql语句,表名)---------
            public DataSet selectdatabase(string constr, string tablename)
            {
                MySet = new DataSet();
                MySet.Clear();
                MyCon = new SqlConnection(LinkStr);
                SqlDataAdapter Myadapter = new SqlDataAdapter(constr, MyCon);            try
                {
                    Myadapter.Fill(MySet, tablename);
                    return MySet;
                }
                catch
                {
                    return null;
                }
                finally
                {
                    MyCon.Dispose();
                    Myadapter.Dispose();
                }
            }        //-------------直接查询数据(sql语句)-------------
            public DataTable selectdatabase(string constr)
            {
                MyCon = new SqlConnection(LinkStr);
                MySet = new DataSet();
                //MySet.Clear();
                SqlDataAdapter MyAdapter = new SqlDataAdapter(constr,MyCon);            try
                {
                    MyAdapter.Fill(MySet);
                    return MySet.Tables[0];
                }
                catch
                {
                    return null;
                }
                finally
                {
                    MyCon.Dispose();
                    MyAdapter.Dispose();
                }
            }
        }    
    }
      

  4.   

    对于你的问题:string SelStr = "SELECT DepartmentID, DepartmentName FROM Department";
                MyTable = MyLink.selectdatabase(SelStr);
                int count = MyTable.Rows.Count;
    1.检查数据库连接是否有问题..2.是否有这个表,表中是否有这些字段..
      

  5.   

    private void FillTreeView()
            {
                string SelStr = "SELECT DepartmentID, DepartmentName FROM Department";
                MyTable = MyLink.selectdatabase(SelStr);
                DataView Myview = new DataView(MyTable);
                int count = Myview.Count;
                
                if (count > 0)
                {
                    foreach(DataRowView MyRow in Myview)
                    {
                        int DepartmentID = Int32.Parse(MyRow["DepartmentID"].ToString());
                        string NodeName = MyRow["DepartmentName"].ToString();
                        TreeNode MyNode = new TreeNode(NodeName);
                        this.treeView1.Nodes.Add(MyNode);
                       
                        AddTreeViewNode(MyNode,DepartmentID);
                    }
                }
            }
    偶 这样修改 发现 可以实现
      

  6.   

    你那个类返回来的是dataset对象,怎么可以直接用
    MyTable = MyLink.selectdatabase(SelStr);
                int count = MyTable.Rows.Count;