新手为做毕业设计向各位求教。要做个火车站查询的东西。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)
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)
解决方案 »
- 修改了系统时间后,项目会报错
- 服务无法处理的请求由于内部错误
- 菜鸟新手~~我下载了一个项目,数据库连不上,怎么半?
- 怎么把上传图片的地址添加到数据库里?
- c/s的网页地址的取值问题
- 怎么在安装程序中判断用户机器上安装的是sqlserver2000,还是sqlserver2005,2008
- c#中的多态问题!
- zglxh3(noproblem),接分之二
- 紧急求救!!!.net安装问题!!!
- .net运行时候遇到一条信息,以前我只要运行里打入aspnet_regiis -c就行了,现在不行了怎么办吖
- 下面的五子棋判断权值的是什么意思...
- 想连接远程Oracle,用OleDbConnection类应该怎么写啊
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["表名"];
}
如下思路:
我想了一下.我的数据库不太好,没想出来有什么方法可以不借助临时表或存储过程来实现这个功能~但可以有以下的方法
首先: 查询出包含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条记录,这个路线便是可以到达的,如果只剩下一条,把最后一条也给删除.就可以了.不过这样的思路可能性能很差...你试试看吧..我再想想.有好的方法再告诉你.~