预览时,老是在dbAdapter.Fill(dataset, TableName)这一行提示列名 'issueDate' 无效。搞了快一晚上,还是不得其解。高人指点一下,感激中!
我把相关源码复制在下:我在Web.Config文件中的配置如下:
<appSettings/>
<connectionStrings>
<add name="coon" connectionString="Server=(local)\SQLEXPRESS;database=News_All;Integrated Security=False;User ID=sa;Password=" /> </connectionStrings>BaseClass文件:
public System.Data.DataSet GetDataSet(string sQueryString,string TableName)
    {
        SqlConnection con = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["coon"].ConnectionString );
        con.Open();
        SqlDataAdapter dbAdapter = new SqlDataAdapter(sQueryString, con);
        
        DataSet dataset = new DataSet();
        dbAdapter.Fill(dataset, TableName);
        con.Close();
        return dataset;
下面是cs文件中的:
 BaseClass bc = new BaseClass();
    protected void Page_Load(object sender, EventArgs e)
    {
        //即时新闻
        dljs.DataSource = bc.GetDataSet("SELECT TOP 30 ID, Style, Title FROM tbNews where issueDate='" + DateTime.Today.ToString() + "'", "tbNews");
        dljs.DataKeyField = "id";
        dljs.DataBind();
        //友情链接
        DataList1.DataSource = bc.GetDataSet("SELECT TOP 5 * FROM tbLink order by addDate desc", "tbLink");
        DataList1.DataKeyField = "id";
        DataList1.DataBind();
    }

解决方案 »

  1.   

    数据库tbNews表里确实有issueDate这个字段?
      

  2.   

    首先确定tbNews表里其实有个日期型字段issueDate。
    取得当天的前30条记录:
    "select30 ID, Style, Title  from tbNews where datediff(Day,issueDate,getdate())=0"最好加个排序。
      

  3.   

    SELECT TOP 30 ID, Style, Title FROM tbNews where datediff(Day,issueDate,getdate())=0
      

  4.   

    数据库tbNews表里确定时否有issueDate这个字段
    看看你的 DataList1 绑定列上的数据源字段是否名字与issueDate一样
      

  5.   

    'issueDate' 没有吧!是否拼错了
      

  6.   

    把SQL语句拿到查询分析器中,运行一下,看有错吗!
      

  7.   

    楼主 逻辑问题
    出现问题这里
        protected void Page_Load(object sender, EventArgs e) 
        { 
            //即时新闻 
            dljs.DataSource = bc.GetDataSet("SELECT TOP 30 ID, Style, Title FROM tbNews where issueDate='" + DateTime.Today.ToString() + "'", "tbNews"); 
            dljs.DataKeyField = "id"; 
            dljs.DataBind(); 
    下面应该再声明 个dataset 来做数据源,不能用之前的dataset做数据源,否则会导致第一个的datalist数据源变成最新的数据源,所以找不到列名        //友情链接 
            DataList1.DataSource = bc.GetDataSet("SELECT TOP 5 * FROM tbLink order by addDate desc", "tbLink"); 
            DataList1.DataKeyField = "id"; 
            DataList1.DataBind(); 
        }
      

  8.   

    tbNews里的IssDate和程序里的已经改成IssDate,可还是不行。还是提示列名 'issueDate' 无效。求救!
      

  9.   

    你先去sql里去运行下这句sql语句,看看他的列名叫什么,这个错误是列名不匹配导致的!
      

  10.   

    如果你的DB确实有issueDate这个字段,那么请你检查单词拼得是否正确!
      

  11.   

    看楼主 还是不懂我的意思 我的意思说 创建两个BaseClass文件: 
    public System.Data.DataSet GetDataSet(string sQueryString,string TableName) 
        { 
            SqlConnection con = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["coon"].ConnectionString ); 
            con.Open(); 
            SqlDataAdapter dbAdapter = new SqlDataAdapter(sQueryString, con); 
            
            DataSet dataset = new DataSet(); 
            dbAdapter.Fill(dataset, TableName); 
            con.Close(); 
            return dataset; 
    }
    一个负责、dljs.DataBind(); 
    另外个负责DataList1.DataBind();