直接上代码:
OleDbConnection oc = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("列车票务.mdb"));
            oc.Open();            OleDbDataAdapter oa = new OleDbDataAdapter("select 座位号 from 座位 where 车次='" + TextBox1.Text + "'and 仓号='"+DropDownList3.Text+"'and 日期='"+Calendar1.VisibleDate.Date+"'", oc);
            DataSet ds = new DataSet();
            oa.Fill(ds, "座位");
            GridView1.DataSource = ds;
            GridView1.DataBind();
          
            oc.Close();数据库日期的数据类型是日期/时间,格式是短日期~
运行出现的问题是:
表 '座位' 己经被别的用户以独占方式打开, 或它已经被其它用户从用户界面打开,且不能被程序处理。然后我删掉 :日期='"+Calendar1.VisibleDate.Date+"'是能正常运行的~~请大家帮忙看看

解决方案 »

  1.   

    应该是你运行程序的时候没有关闭Access引起的吧
      

  2.   

    你问的问题没看出来。
    倒是看出你这个sql字符串拼接的安全性问题来了,
    好危险哦!!!!
      

  3.   


    对的~~谢谢哈~~不过现在问题是出来了标准表达式中数据类型不匹配。问题还是出在这个上:日期='"+Calendar1.VisibleDate.Date+"'请问怎么修改?
    Calendar1.VisibleDate.Date
    出来的是0001-1-1 00:00:00然后我的日期数据是0001-1-1的类型的
      

  4.   

    要被别人sql攻击。建议改用存储过程!!
      

  5.   


    没看到是Access数据库啊,还存储过程....日期='"+Calendar1.VisibleDate.Date.ToString("yyyy-MM-dd")+"'  试试。 再不行的话,查查Access的数据库中时间类型的最小值,是不是允许 0001-1-1