异常详细信息: System.Web.HttpException: 在选定的数据源上未找到名为“name”的字段或属性。
行 12:  da.fill(ds,"科研数据库")
行 13:  dg.datasource=ds.tables("科研数据库").defaultview
行 14:         dg.DataBind()
行 15:  conn.close
行 16:  conn=nothing
但我确实是数据库里面有这个字段,为什么就找不到呢?郁闷,请教高手啊.下面是我连接数据库的代码
<columns>
<asp:boundcolumn datafield= "name" headertext="姓名"/>
<asp:boundcolumn datafield= "number" headertext="编号"/>
<asp:boundcolumn datafield= "profession" headertext="职业"/>
<asp:boundcolumn datafield= "rank" headertext="职位"/>
<asp:boundcolumn datafield= "weather" headertext="是否发表过论文"/>
<asp:boundcolumn datafield= "sex" headertext="性别"/>
</columns>

解决方案 »

  1.   

     this.GridView1.DataSource = ds.tables[0];
            this.GridView1.DataBind();name 在数据库中是关键字。 public static DataTable ReturnDataTable(string cmdtext)
        {
            SqlConnection cn = new SqlConnection();
            cn.ConnectionString = "数据库连接字符串";
            DataTable dt = new DataTable();
            SqlCommand cmd = new SqlCommand();
            cmd = new SqlCommand(cmdtext, cn);
            cmd.CommandType = CommandType.Text; ;
            SqlDataReader dr = null;
            using (dr = cmd.ExecuteReader(CommandBehavior.CloseConnection))
            {
                dt.Load(dr);
            }
            return dt;
        }cmdtext是你的SQL语句然后把控件的数据源给加上。。  this.GridView1.DataSource = ReturnDataTable(sqlstr);
            this.GridView1.DataBind();
      

  2.   

    楼上的看起来好复杂,而且我现在的数据库建表时name就不是关键字呢……
    我遇到这样的错误的时候都是去看我的SQL语句,经常是因为两表合并啦或者联合查询的时候,对应字段的名字就变了,你找找你SQL语句里面对应name的列名后面加个 as name ,这样就能绑定到了。
    比如:select A.name as name from A,B where A.id = B.id;
    把逐句运行调试出来的SQL复制在数据库里也能查出来字段名字的变化,楼主试试~
      

  3.   

    我是用语句写的,没有用控件,而且如果再去连接控件的话,与语句是否会有冲突,下面是我数据库核心的代码:
    sub page_load(source as object,e as eventargs)
    dim conn as new oledbconnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source ="+server.mappath("数据库.mdb")+"")
    conn.open
    dim ds as new dataset
            Dim da As New OleDbDataAdapter("select * from 科研数据库", conn)
    da.fill(ds,"科研数据库")
    dg.datasource=ds.tables("科研数据库").defaultview
            dg.DataBind()
    conn.close
    conn=nothing
    end sub
    连接上面的,能给出纯代码的吗,我不是用的VS的.谢谢了
    还有你说的name是关键字,但我压根没设置,这会影响连接的结果吗?
      

  4.   

    求高手指明了啊,这个问题实在困扰我好几天了,我刚把 select *换成了select name,number,profession,rank,weather,sex from 科研数据库,可结果是:
    异常详细信息: System.Data.OleDb.OleDbException: 至少一个参数没有被指定值。行 10:  dim ds as new dataset
    行 11:         Dim da As New OleDbDataAdapter("select name,number,profession,rank,weather,sex from 科研数据库", conn)
    行 12:  da.fill(ds,"科研数据库")
    行 13:  dg.datasource=ds.tables("科研数据库").defaultview
    行 14:         dg.DataBind()
     对了,数据库是access数据库,谢谢了.