⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 waitdeal_orderform.cs

📁 第三方物流信息管理平台 1、数据库配置: 需要打开MS SQL SERVER 2000企业管理器
💻 CS
📖 第 1 页 / 共 3 页
字号:
				if (cmAmend.Position > 0)
				{
					this.dataGrid1.UnSelect(cmAmend.Position); 
					cmAmend.Position--;
					this.dataGrid1.Select(cmAmend.Position);      
					this.dataGrid1.CurrentRowIndex = cmAmend.Position; 
				}
				return;
			}
			if (e.Button.ToolTipText == "下一个记录")
			{
				if (cmAmend.Position < cmAmend.Count-1)
				{
					this.dataGrid1.UnSelect(cmAmend.Position); 
					cmAmend.Position++;
					this.dataGrid1.Select(cmAmend.Position);       
					this.dataGrid1.CurrentRowIndex = cmAmend.Position; 
				}
				return;
			}
			if (e.Button.ToolTipText == "末记录")
			{
				this.dataGrid1.UnSelect(cmAmend.Position); 
				cmAmend.Position = cmAmend.Count-1;
				this.dataGrid1.Select(cmAmend.Position);       
				this.dataGrid1.CurrentRowIndex = cmAmend.Position; 
				return;
			}
		}


		private void groupBox2_Enter(object sender, System.EventArgs e)
		{
		
		}

		private void button1_Click_1(object sender, System.EventArgs e)
		{
			string startverx=this.textBox3.Text.Trim();
			string endverx=this.textBox4.Text.Trim();
			int start=0;
			int end=0;
		

			for(int i=0;i<this.transDataset1.Tables[0].Rows.Count;i++)
			{
				if(startverx==this.transDataset1.Tables[0].Rows[i][1].ToString().Trim())
				{
					start=int.Parse(this.transDataset1.Tables[0].Rows[i][0].ToString().Trim());
					
				}

				if(endverx==this.transDataset1.Tables[0].Rows[i][1].ToString().Trim())
				{
					end=int.Parse(this.transDataset1.Tables[0].Rows[i][0].ToString().Trim());
			
				}
			}
			

			set_pragh(start,end);
			

		}

		private void set_pragh(int startverx,int endverx)
		{
			int mm=this.transDataset1.Tables[0].Rows.Count;//图的接点数,城市数量
			
			int[,] pragh=new int[mm,mm];//距离矩阵
			string fmu;int ff;//起点
			string smu;int ss;//终点
			string dmu;int dd;//距离

			int[] d=new int[mm];//数据结构中的带权长度数组
			bool [,] p=new bool[mm,mm];//数据结构中的最短路径存储数组
			bool [] final=new bool[mm];//确定是否将某个点加入S集合
			int min;
			int k=0;
			int n=0;
			int q=0;
			int[] result=new int[50];//存储运算结果的数组
			string[] point=new string[50];
			

			//string shortpragh="";
		
			

						
			for(int i=0;i<mm;i++)    //设置矩阵 初始化
				for(int j=0;j<mm;j++)
					pragh[i,j]=1000000;

			for(int m=0;m<this.transDataset21.Tables[0].Rows.Count;m++)
			{
				fmu=this.transDataset21.Tables[0].Rows[m][1].ToString().Trim();
				ff=int.Parse(fmu);
				Console.Write(ff);
				smu=this.transDataset21.Tables[0].Rows[m][2].ToString().Trim();
                ss=int.Parse(smu);
				dmu=this.transDataset21.Tables[0].Rows[m][3].ToString().Trim();
				dd=int.Parse(dmu);

				if(int.Parse(this.transDataset21.Tables[0].Rows[m][3].ToString().Trim())<1000000)
					pragh[ff,ss]=dd;
			}
			for(int v=0;v<mm;v++)
			{
				final[v]=false;
				d[v]=pragh[startverx,v];   //初始化
				for(int w=0;w<mm;w++)
					p[v,w]=false;  //设空路径
				if(d[v]<1000000)
				{
					p[v,startverx]=true;
					p[v,v]=true;
				}
			}//for
			d[startverx]=0;
			final[startverx]=true;//v0顶点属于s集

            //开始主循环,每次求得v0到某个v顶点的最短路径,并加v到s集
			for(int i=1;i<mm;i++)
			{
				min=1000000;
				for(int j=0;j<mm;j++)
				
					if(!final[j])
						if(d[j]<min)
						{
							k=j;
							min=d[j];
						}
				final[k]=true;
				for(int j=0;j<mm;j++)
					if(!final[j]&&(min+pragh[k,j])<d[j])
					{
						d[j]=min+pragh[k,j];
						

						for(int m=0;m<mm;m++)
							p[j,m]=p[k,m];

						p[j,j]=true;
					}
			}//for
             //查找startverx到endverx在pragh中的位置,写入result数组
			for(int m=0;m<mm;m++)
			{
				if(p[endverx,m])
				{
					result[n]=m;
					n=n+1;
				}

			}
			for(int i=0;i<n;i++)
				for(int m=0;m<this.transDataset1.Tables[0].Rows.Count;m++)
				
					if(int.Parse(this.transDataset1.Tables[0].Rows[m][0].ToString().Trim())==result[i])
					{
						point[q]=this.transDataset1.Tables[0].Rows[m][1].ToString().Trim();
						q=q+1;
					}
			for(int j=q-1;j>0;j--)
			{
				this.textBox7.Text+=point[j]+"--";
			}
			this.textBox7.Text+=point[0];

			for(int j=q-1;j>0;j--)
			{						

				if(point[j]!="")
				{
					short_pragh1=point[j]+"|"+"0"+",";
					
				}
				sp1+=short_pragh1;
				
			}
			sp1+=point[0];

			for(int j=q-1;j>0;j--)
			{
				if(point[j]!="")
				{
					short_pragh2=point[j]+"--";
				}
				sp2+=short_pragh2;
			}
			sp2+=point[0];
				
				
			}

		private void button2_Click(object sender, System.EventArgs e)//清空按纽
		{
			this.textBox7.Text="";
			sp1="";
			sp2="";
		}

		private void button3_Click(object sender, System.EventArgs e)//保存路径按纽的事件
		{
			if(this.textBox7.Text.Trim()=="")
			{
				MessageBox.Show("未进行路线的设计,无法保存数据!!","提示");
			}
			else
			{
				int ddbh=0;
				ddbh=int.Parse(this.textBox1.Text.Trim());
				bool flog1=false;
				bool flog2=false;

				string order_num=this.textBox1.Text.Trim();

				string sendSQL11="select 订单编号 from short_pragh";
				string sendSQL22="select 订单编号 from short_pragh_xs";

				temptable1=this.link1.SelectDataBase(sendSQL11);
				temptable2=this.link1.SelectDataBase(sendSQL22);

				for(int i=0;i<temptable1.Rows.Count;i++)
				{
					if(order_num==temptable1.Rows[i][0].ToString().Trim())
						flog1=true;
				}
				for(int i=0;i<temptable2.Rows.Count;i++)
				{
					if(order_num==temptable2.Rows[i][0].ToString().Trim())
						flog2=true;
				}

				if(flog1==false)
				{
					try
					{
						string sendvalues="('" + ddbh +"','"+ sp1 +"')";
						string strSQL33="insert short_pragh(订单编号,最短路径)values"+sendvalues;
						this.link1.UpdateDataBase(strSQL33);
					
					}
					catch
					{
						MessageBox.Show("数据保存失败","提示");
						return;
					}
				}
				else
				{
					MessageBox.Show("最短路径已经存储过了!!","提示");
				}

				if(flog2==false)
				{
					try
					{
						string sendvalues="('" + ddbh +"','"+ sp2 +"')";
						string strSQL44="insert short_pragh_xs(订单编号,最短路径)values"+sendvalues;
						this.link1.UpdateDataBase(strSQL44);
					
					}
					catch
					{
						MessageBox.Show("数据保存失败","提示");
						return;
					}
				}
				else
				{
					MessageBox.Show("最短路径已经存储过了!!","提示");
				}

			

				try
				{
					string tempPRD="exec PRD_updateddzt '"+ddbh+"'";  //调用修改订单状态的存储过程
					this.link1.UpdateDataBase(tempPRD);
				}
				catch
				{
					MessageBox.Show("订单状态未改变!","提示");
					return;
				}

				MessageBox.Show("数据保存成功!!订单状态已经修改!!","提示");
			}
		
		}

		private void sqlDataAdapter1_RowUpdated(object sender, System.Data.SqlClient.SqlRowUpdatedEventArgs e)
		{
		
		}


	
	
	
	
	
	
	
	
	
	
	
	




	
	}

			
		
}
		








	

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -