新手为做毕业设计向各位求教。要做个火车站查询的东西。id stationno checi name arrtime starttime distance costtime
14042 1 2589 北京 始发站 11:40 0 当日
14043 2 2589 燕郊 12:10 12:11 36 当日
14044 3 2589 三河县 12:27 12:29 59 当日
14045 4 2589 玉田县 13:03 13:05 117 当日
14046 5 2589 丰润 13:29 13:32 151 当日
14047 6 2589 滦县 14:09 14:11 208 当日
14048 7 2589 秦皇岛 15:15 15:17 299 当日
14049 8 2589 山海关 15:37 15:45 315 当日
14050 9 2589 绥中 16:26 16:30 380 当日
14051 10 2589 兴城 17:00 17:04 427 当日
14052 11 2589 葫芦岛 17:20 17:24 448 当日
14053 12 2589 锦州 17:58 终点站 "499
" 当日
有两个文本框 一个按钮 和 一个DATAGRADVIEW。想要根据文本框中输入的两个站名,按下按钮后在DATAGRADVIEW中显示出符合要求的车次,及这两个站的到站和出战时间,数据表如上。其他的问题好像不大,就是这个条件选择的句子写不好,估计就是这里的问题导致显示不出结果,希望哪位可以帮忙看下怎么改,最好写的详细点,新手,谢谢了。 OleDbCommand cmdLiming = new OleDbCommand("select checi from [all] where 'select checi from [all] where name='" + this.textBox2.Text.Trim() + "''='select checi from [all] where name='" + this.textBox3.Text.Trim() + "' ' ", cn)

解决方案 »

  1.   

    select * from 表 where (Name = this,textbox2.text or name=this.textbox3.text)
      

  2.   

    我的意思可能没太描述明白,我给的表是同一个车次里的,其实是有很多个车次。实现的功能是  根据 TEXTBOX 中的站名 选出符合这个要求的 车次。最基本的问题是能够查询出这个车次就可以了,车次查出来了其他的也就好办了。刚才意思没表达明白,现在补充下。
      

  3.   

    string sql=@"select * from 表 where name=@name";
    SqlParameter parameter = new SqlParameter("@name", SqlDbType.Varchar);
    string ConnectionString = "Data Source=.;Initial Catalog=MyDB;Integrated Security=True";
    parameter.Value =Textbox.Text;
    string ConnectionString = "Data Source=.;Initial Catalog=MyDB;Integrated Security=True";
                using (SqlConnection conn = new SqlConnection(ConnectionString))
                {
                    if (conn.State != ConnectionState.Open)
                        conn.Open();
                    SqlCommand cmd = new SqlCommand(sql,conn);
                    cmd.Parameters.Add(parameter);
                    SqlDataAdapter ada = new SqlDataAdapter(cmd);
                    DataSet ds = new DataSet();
                    ada.Fill(ds,"表名");
                    dataGridView1.AutoGenerateColumns = true;
                    dataGridView1.DataSource = ds.Tables["表名"];
                                }
      

  4.   


    如下思路:
    我想了一下.我的数据库不太好,没想出来有什么方法可以不借助临时表或存储过程来实现这个功能~但可以有以下的方法
    首先: 查询出包含A站点,与包含B站点两个站点的所有记录
          select * from 汽车时刻表 where name=textbox1.text or name=textbox2.text order by checi
    第二步: 判断查询出来的记录是否有相同的车次
          把查询出来的结果绑到 datagridview1 ,然后做循环判断
          for (int i=0;i<datagridview.count();i++)
          if (datagridview["checi"][i][value.tostring() != datagridview]["checi"][i+1].value.tostring())
         {
          datagridview.rows.Remove(i);
         }
          //这里的思路很重要,这里的代码意思是把第i条记录和第i+1条记录对比,看他们的车次是否相同,因为我们开始查询的结果是排过序的,如果有两条以上的记录,那么这就是一个可到达的车次,如果只有一条记录,那就必定是不能到达的,然后把这第一条记录给删除,然后再判断第i+1条和第i+2条记录,如此下去,最后剩下如果有2条记录,这个路线便是可以到达的,如果只剩下一条,把最后一条也给删除.就可以了.不过这样的思路可能性能很差...你试试看吧..我再想想.有好的方法再告诉你.~