using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using System.Configuration;
namespace TestOfAspNet.AspForm.DataMining
{
/// <summary>
/// Lineregression 的摘要说明。
/// </summary>
public class Lineregression : System.Web.UI.Page
{
protected System.Web.UI.WebControls.DataGrid DataGrid1;
protected System.Web.UI.WebControls.Label Label1;
protected System.Web.UI.WebControls.TextBox TextBox1;
protected System.Web.UI.WebControls.Button 预测;
string strConnection=ConfigurationSettings.AppSettings["ConnStr"];
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if(!IsPostBack)
{
BindGrid();
}
}
private void YuCe()
{
DataSet Ds=Calculate();
float RecordCount=Ds.Tables[0].Rows.Count;
float TotalSalary=0;
float TotalYears=0;
float Up=0;
float Down=0;
float Rowi_JobYears=0;
float Rowi_Salary=0;
float PerYear=0;
float PerSalary=0;
float PerUp=0;
float PerDown=0;
for(int i=0;i<Ds.Tables[0].Rows.Count;i++)
{
Rowi_JobYears=float.Parse(Ds.Tables[0].Rows[i]["JobYears"].ToString());
Rowi_Salary=float.Parse(Ds.Tables[0].Rows[i]["Salary"].ToString());
TotalYears +=Rowi_JobYears;
TotalSalary +=Rowi_Salary;
PerYear=(Rowi_JobYears-TotalYears/RecordCount);
PerSalary=(Rowi_Salary-TotalSalary /RecordCount);
PerUp=PerYear*PerSalary;
PerDown=PerYear*PerYear;
Up+=PerUp;
Down+=PerDown;
}
float Beta=Up/Down;
float Apha=TotalSalary/RecordCount-Beta*(TotalYears/RecordCount);
if(this.TextBox1.Text.Trim()==null ||this.TextBox1.Text.Trim()=="")
{
Response.Write("<script>alert('请您输入数据!')</script>");
}
else
{
float Y=Apha+Beta*float.Parse(this.TextBox1.Text.Trim());
this.Label1.Text="您输入的工作年数是:"+this.TextBox1.Text+" --您的工作薪水是:"+Y.ToString();
}
}
private void BindGrid()
{
SqlConnection Connection=new SqlConnection(strConnection);
Connection.Open();
string Query="select * from LineRegression";
SqlDataAdapter Adapter = new SqlDataAdapter(Query,Connection);
DataSet Ds=new DataSet();
Adapter.Fill(Ds);
this.DataGrid1.DataSource=Ds.Tables[0].DefaultView;
this.DataGrid1.DataBind();
}
private DataSet Calculate()
{
SqlConnection Connection=new SqlConnection(strConnection);
Connection.Open();
string Query="select JobYears,Salary from LineRegression";
SqlDataAdapter Adapter=new SqlDataAdapter(Query,Connection);
DataSet Ds=new DataSet();
Adapter.Fill(Ds);
return Ds;
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.预测.Click += new System.EventHandler(this.预测_Click);
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
private void 预测_Click(object sender, System.EventArgs e)
{
YuCe();
}
}
}